Cla*_*diu 150 c arrays initialization
我需要在C中使用一个大的空数组作为全局数组.除了输入外,还有什么方法可以做到这一点
char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };
Run Code Online (Sandbox Code Playgroud)
?
Joh*_*ica 251
全局变量和静态变量自动初始化为零.如果你有简单的话
char ZEROARRAY[1024];
Run Code Online (Sandbox Code Playgroud)
在全局范围内,它将在运行时全部为零.但实际上是一个速记语法,如果你有一个本地阵列.如果数组已部分初始化,则未初始化的元素将接收相应类型的值0.你可以写:
char ZEROARRAY[1024] = {0};
Run Code Online (Sandbox Code Playgroud)
编译器会用零填充未写入的条目.或者,您可以memset在程序启动时使用初始化数组:
memset(ZEROARRAY, 0, 1024);
Run Code Online (Sandbox Code Playgroud)
如果您更改了它并希望将其重置为全零,那将非常有用.
Deq*_*ing 30
如果您想将数组初始化为0以外的值,gcc您可以执行以下操作:
int array[1024] = { [ 0 ... 1023 ] = -1 };
Run Code Online (Sandbox Code Playgroud)
这是C99 指定初始化程序的GNU扩展.在较旧的GCC中,您可能需要使用-std=gnu99编译代码.
| 归档时间: |
|
| 查看次数: |
247052 次 |
| 最近记录: |