能力值:
( LV13,RANK:1050 )
|
-
-
2 楼
嗯,第二种方法是定义时的初始化。
是否还记得在初始化数组的时候曾有过这样的写法: char buffer[1024] = {0};
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
其实2种方式是一样的
SomeStruct ss = { 0 }
在编译的时候 (VC++) 等于
SomeStruct ss;
memset( &ss ,0,sizeof(SomeStruct));
|
能力值:
(RANK:330 )
|
-
-
4 楼
这贴可以往新手区放了
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
抱歉抱歉,可能是发错地方了.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
用VC验证了一下:
int a(){
int a[100]={0}
return 1;
}
对应的编译代码是:
public _a
_a proc near
var_190= dword ptr -190h
var_18C= dword ptr -18Ch
push ebp
mov ebp, esp
sub esp, 190h
push edi
mov [ebp+var_190], 0
mov ecx, 63h
xor eax, eax
lea edi, [ebp+var_18C]
rep stosd
mov eax, 1
pop edi
mov esp, ebp
pop ebp
retn
_a endp
不过觉得奇怪的是
代码为什么不编译成这样?
push ebp
mov ebp, esp
sub esp, 190h
push edi
;;;;;del: mov [ebp+var_190], 0
mov ecx, 64h
xor eax, eax
lea edi, [ebp+var_190]
rep stosd
mov eax, 1
pop edi
mov esp, ebp
pop ebp
retn
|
能力值:
( LV9,RANK:1250 )
|
-
-
7 楼
不懂编程,看不懂滴说。
|
能力值:
(RANK:300 )
|
-
-
8 楼
十分敬佩Happytown
(*^__^*) 嘻嘻……
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
[QUOTE=auser;397053]用VC验证了一下:
int a(){
int a[100]={0}
return 1;
}
对应的编译代码是:
public _a
_a proc near
var_190= dword ptr -190h
var_18C= dword ptr -18Ch
push ...[/QUOTE]
因为a[100]={0}表示a[0]初始化为0,剩下的值初始化为int型默认值(即0)
|
|
|