c11

    -2熱度

    1回答

    我使用g ++編譯c代碼並在某些問題中運行。 固定指定初始化我留下了這個錯誤後: error: invalid conversion from 'void*' to '__u8*' 這是我的代碼: static inline void put_unaligned_le16(__u16 val, __u16 *cp) { __u8 *p = (void *)cp;

    3熱度

    1回答

    由於C11引入了像 char *gets_s(char *str, rsize_t n); 了一些新的功能,我如何才能找到在Ubuntu 12.04這些功能的手冊頁?

    2熱度

    2回答

    C標準是否爲下面的程序提供了任何藉口而不在其標準輸出上產生千兆字節的空間? #include <stdio.h> int main() { // 2^64 = 18446744073709551616 printf("x%18446744073709551619dx\n", 42); return 0; } 在Mac OS X 10.8和Linux上測試,

    2熱度

    1回答

    我讀維基百科這個C11的_Generic例如: #define cbrt(X) _Generic((X), long double: cbrtl, \ default: cbrt, \ float: cbrtf)(X) 似乎很清楚如何與只有一個參數使用它的功能,但我看不到的方式來用這個系統寫兩個(或更多)通用參數的函數。這怎麼可能? 如果某些編譯器支

    0熱度

    1回答

    第§6.3.2.1(第72頁)說明了 一種lvalue指對象即一塊內存。 在評估表達式時,對象被轉換爲它們的值,即不再是對象。值得注意的例外是=,&,.,++,--,sizeof的左操作數。 數組通常轉換爲指向其第一個元素的常量指針。 &的操作數也是一個例外。 函數被隱式轉換爲指向函數的指針。除了當時的一元化目標&。 爲什麼單數&如此特別?爲什麼從未提到過一元|?

    6熱度

    1回答

    是否有任何站點比較實現/編譯器之間當前的C11標準一致性/支持? (海灣合作委員會,鐺,英特爾,open64,pelles)

    0熱度

    1回答

    我試圖將用C99編寫的舊程序轉換爲C11以與MinGW一起編譯。我碰到這行代碼在這裏 contenu[/size] = buffer; 和驗證碼 output[k] = ((S[(S[i][/i] + S[j])%SIZE])^texte[k]); 我不習慣C99。它說[/ size]和[/ i]是那些舊的c99語法還是隻是某人寫錯了代碼? 此外,我正在使用MinGW的-std = c99

    5熱度

    1回答

    §6.5.8\6(關於>,<,< =,> =) 如果表達式P指向數組對象的元件和 表達Q點到相同數組對象的最後一個元素,指針表達式Q + 1的 比較大於P.在所有其他情況下, 的行爲未定義。 上面幾節中,第6.5.8節解釋說,基本上,指針的算術在數組上是按預期工作的。那是int a[3]; int *p = a; int *q = &a[2]; //q-p == 3是有效的。但是,正如我讀到q >

    27熱度

    1回答

    顯然,下面的函數原型在C99和C11是有效的: void foo(int a[const *]); void bar(int a[static volatile 10]); 什麼是那些奇怪的符號下標*,static,和CV預選賽的目的是什麼? 他們幫助區分靜態類型數組和可變長度數組嗎?或者他們只是語法糖?

    3熱度

    3回答

    假設我的項目包括從包含該第三方庫頭: struct foo { signed int x:4; }; 沒有假設位字段總會有寬4,並且不依賴於實現定義的行爲,我怎麼能確定可存儲在會員x中的最大值?