c99

    2熱度

    2回答

    下面是IBM報價(在C99標準還規定) 當您打開一個文件進行更新,可以對所得到的數據流進行輸入和輸出 操作。但是,輸出操作 不能在沒有插入fflush子例程調用或文件定位操作 (fseek,fseeko,fseeko64,fsetpos,fsetpos64或倒帶子例程)的情況下不進行輸入操作。 此外,除非輸入操作遇到文件末尾,否則輸入操作不能直接跟隨輸出 操作而沒有介入的刷新或文件定位操作, 。

    3熱度

    2回答

    我看到這個例子,我有一個crc32.c文件,其中包含: inline int32_t crc32_compute(int32_t *buffer, size_t size) { ... } 在頭文件中我發現: extern inline int32_t crc32_compute(int32_t *buffer, size_t size); 對我來說,inline關鍵字沒有作用

    0熱度

    1回答

    我試圖以更易於管理的方式製作大塊數據。 #pragma anon_unions typedef union { uint8_t Contents[PACKET_SIZE]; struct { uint8_t Command; uint8_t X[24]; uint8_t Y[24]; uint8_t

    1熱度

    2回答

    每cppreference.com長度修飾符%L僅適用於浮點類型。但現代GNU編譯器似乎也接受它作爲%ll(long long)的同義詞的整數。有沒有可能在這方面引用錯誤?或者%L是整數在未來會成爲標準嗎?

    7熱度

    4回答

    第7.18.1.4 C99標準狀態: 以下類型表示具有任何有效的指針void可以轉化爲這種類型的屬性的無符號整數類型,則轉換回指針void,結果將相當於原來的指針: uintptr_t 這是否意味着只有void *類型可以轉換爲uintptr_t,並返回而不更改原始指針的值? 我特別想知道,如果下面的代碼是需要使用uintptr_t: int foo = 42; void * bar = &fo

    1熱度

    1回答

    我想創建一個trie,我需要所有的布爾等於false,除非另有規定。然而,這種同時成員初始化和定義的格式只在C++ 11中有效......顯然,有沒有辦法在c99中做到這一點? typedef struct { bool booleans[28] = { false }; struct node *next[27]; }node;

    -3熱度

    1回答

    我嘗試十六進制值轉換成一個字符串,我已經看過這個question,但我不知道如何將它轉換以動態的方式一個字符串,就像如果我的功能得到了六角系列8或9或更多。我怎樣才能優化這個片段與一個循環遍歷給定的十六進制值並轉換每個十六進制值(第一個除外),然後是.? /* Input: char[] ="2b06010201010300" Output: char[]="1.3.6.1.2.1.1.3.0

    10熱度

    2回答

    gcc的較新版本提供Wimplicit-fallthrough,這對於大多數switch語句來說都是非常棒的。但是,我希望允許所有病例陳述中都有一個switch語句。 有沒有辦法做一個明確的跌倒?我寧願避免爲此文件編譯Wno-implicit-fallthrough。 編輯:我正在尋找一種方法來通過顯式(如果可能)使秋天,而不是通過編譯器開關或雜注關閉警告。

    2熱度

    1回答

    對於較大的任務的一部分,我被要求實現一個函數,翻轉一個整數的任意位。問題是「整數」可能是c中的任何默認整數類型,從int8_t到uint64_t,我不知道它會是哪一個。 (事實上​​,我的代碼已經在所有這些類型的測試) 這是我的問題的嘗試: //NOTE: g_int is the generic integer, it's typedef'd in a .h file g_int flip_b

    0熱度

    3回答

    使用-std=gnu99 GCC,下面的代碼編譯: void f() { struct X data = {}; // do something with data } 這是合法的C? 這是一個GNU擴展? 如何告訴gcc不接受這種init? 欲確保與其他編譯器(例如像視覺2015)兼容性