1
#import
<
Foundation
/
Foundation.h
>
2
3
int
a,b,c;
//
静态变量
4
5
int
main (
int
argc,
const
char
*
argv[])
6
{
7
8
NSLog(
@"
BOOL type size:%d
"
,
sizeof
(BOOL));
//
typedef signed char BOOL
9
10
if
(FALSE
==
0
)
//
#define FALSE 0
11
{
12
NSLog(
@"
FALSE == 0 FALSE is %d
"
,FALSE);
13
}
14
else
15
{
16
NSLog(
@"
FALSE != 0
"
);
17
}
18
19
if
(TRUE
==
1
)
//
#define TRUE 1
20
{
21
NSLog(
@"
TRUE == 1 TRUE is %d
"
,TRUE);
22
}
23
else
24
{
25
NSLog(
@"
TRUE !== 1
"
);
26
}
27
28
BOOL bool_var;
//
check BOOL is signed char or not?
29
char
c
=
128
;
30
bool_var
=
c;
31
NSLog(
@"
%d
"
,bool_var);
32
33
//
测试objc中是否也将0作为真非0作为假。测试结果跟c一样。所以objec中的BOOL类型应该只是定义来作为一个规范。
34
int
is_bool
=
-
1
;
35
if
(is_bool)
36
{
37
NSLog(
@"
非0直都是true
"
);
38
}
39
40
//
静态变量和自动变量(变量的存储类型)
41
int
d,e;
//
自动变量
42
NSLog(
@"
d=%d e=%d a=%d b=%d c=%d
"
,d,e,a,b,c);
//
输出结果显示,跟c一样,静态变量会自动初始化为0,自动变量的值是一个“随机”数
43
44
//
测试变量的作用域代码块作用域
45
if
(TRUE)
46
{
47
int
mm
=
123
;
48
}
49
NSLog(
@"
mm=%d
"
,mm);
//
mm定义在子代码块内,外部不能访问。编译这段代码时将提示“mm”undeclared
50
51
return
0
;
52
}
输出结果:
2011-05-21 14:18:52.474 console[1766:903] BOOL type size:1
2011-05-21 14:18:52.477 console[1766:903] FALSE == 0 FALSE is 0
2011-05-21 14:18:52.477 console[1766:903] TRUE == 1 TRUE is 1
2011-05-21 14:18:52.478 console[1766:903] -128
2011-05-21 14:18:52.478 console[1766:903] 非0直都是true
2011-05-21 14:18:52.479 console[1766:903] d=32767 e=1606416680 a=0 b=0 c=-128