objective-c: Functions and static keyword
2014-03-05 09:46 三戒1993 阅读(102) 评论(0) 编辑 收藏 举报Functions
function is a concept for C programming language, objective-c is entirely relies on C.
To define a function, you need provide four components: return value, function name, parameters and code block.
like this:
1
2
3
|
int
getRandomInteger( int
minimum, int
maximum) { return
arc4random_uniform((maximum - minimum) + 1) + minimum; } |
the return value is a integer value, function name is getRandownInteger, there are two paramters: minimum and maximum, code block is enclosed by braces.
Function also can use pointer reference as return value or paramaters, like this:
1
2
3
4
5
|
NSString
*getRandomMake( NSArray
*makes) { int
maximum = ( int )[makes
count]; int
randomIndex = arc4random_uniform(maximum); return
makes[randomIndex]; } |
The declaration and implementation can be sepearted, the declaration tells the compiler that these is a function and the implementation do the real work.
1
2
3
4
5
6
7
8
|
//
Declaration NSString
*getRandomMake( NSArray
*); //
Implementation NSString
*getRandomMake( NSArray
*makes) { int
maximum = ( int )[makes
count]; int
randomIndex = arc4random_uniform(maximum); return
makes[randomIndex]; } |
If a method want call function , the function declaration should be defined before the method.
static word
static functions
By default, all functions have a global scope, if you want limit the function’s scope to the current file, use ‘static’ keyword:
1
2
3
4
5
6
|
//
Static function declaration static
int
getRandomInteger( int ,
int ); //
Static function implementation static
int
getRandomInteger( int
minimum, int
maximum) { return
arc4random_uniform((maximum - minimum) + 1) + minimum; } |
Note that static keyword should be use on both the function declaration and implementation.
static local variable
By defualt, the local variable in a function will be reset each time the function is called. If you use ‘static’ midifier on a local variable in a function , the variable value will be remembered.
Note that the local variable’s scope do not changed, it still only accessible inside the function itself.