簡體   English   中英

使用C(GCC)中的單個值初始化數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM