[英]Initialize an array with a single value in C (GCC)
我在頭文件中聲明了一個數組,如下所示:
int snapshot[kSnapshotSize];
我真的很想在我的實現文件中初始化:
snapshot[kSnapshotSize] = {[0 ... kSnapshotSize-1] = 5};
然而編譯器抱怨:“預期的表達”
誰能告訴我我做錯了什么?
UPDATE: int snapshot[kSnapshotSize] = {[0 ... kSnapshotSize] = 5};
似乎工作,所以可能我錯過了一些基本的東西。 我想我可以使用memset
,但首先要確保這是不可能的(以及為什么)
更新2:正如你們許多人所指出的那樣,似乎只能初始化一個數組,以免后來填充它。 我最終使用for
循環。
我認為你的意思是
int snapshot[kSnapshotSize] = {[0 ... kSnapshotSize - 1] = 5};
但是...
使用是gcc特定的擴展。 如果您不介意僅限於gcc,那沒關系。
memset()
不起作用; 它將目標的每個字節設置為指定值。
為了便於攜帶,最好的辦法是使用顯式循環來設置每個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.