c99

    0熱度

    1回答

    我想將一些代碼從windows移植到linux,但是我很難支持大文件。 off_t似乎在gcc以-std = c89運行但不是-std = c99時定義。即使是微不足道的測試用例不會編譯: #define _LARGEFILE_SOURCE #define _LARGEFILE64_SOURCE #define _FILE_OFFSET_BITS 64 #include <stdio.h>

    0熱度

    1回答

    我有一個Instance File從中我需要存儲NUM_PT並在2D陣列系統的形式所有相應座標(個人選擇,所以我可以輕鬆訪問它們)。我能夠檢索到NUM_PT,但我堅持將連續的座標讀入我的數組中。 這裏是我做了什麼 /* Assignment 2 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <

    6熱度

    1回答

    考慮下面的代碼: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <complex.h> int main() { complex double aaa = INFINITY + 0*I; printf("%.f + %.f*I\n", creal(aaa), cimag(aaa));

    5熱度

    1回答

    n3639提議通過c99的variable-length-array S的成C++ 14 但latest I've been able to find列表n3639如(至少對於所述第一尺寸。):在C的第一CD 特點++ 14,隨後刪除到一個技術規範 這是否曾經使它成爲一個技術規範,或者它是否失去了手? 原因我的問題是,我發現這段代碼:(使用「-pedantic」標誌時) void f(size_t

    1熱度

    2回答

    爲什麼MATLAB和C版本產生不同的結果? MATLAB: [B_coeffs, A_coeffs ] = butter(4, 100/(16000/2), 'high'); state = zeros(4, 1); input = zeros(64,1); for i=1:64 input(i)=i; end [filtered_output, state] = fil

    1熱度

    1回答

    如果我寫的C99頭是這樣的: static inline void f() { static int x = 0; // Do something with x } 它是保證每個模塊包含這一頭獲取的f()一個單獨的實例和其自身的x實例?

    -1熱度

    1回答

    首先,我看過其他類似的問題,他們不幫助我。我有以下Valgrind的輸出: 我的代碼: int f_gozlemZamaniFarki(long long t1,long long t2) { char *time1 = (char*)calloc(12,sizeof(char)); char *time2 = (char*)calloc(12,sizeof(char));

    4熱度

    1回答

    我試圖靜態分配一些結構,每個結構包含兩個成員:一個指向結構數組的指針,以及該數組的大小。 下面的代碼的工作版本: #define ARRAY_SIZE(x) (sizeof((x))/sizeof((x)[0])) struct conf_element { char *key; enum conf_elem_type val_type; void *val

    -3熱度

    1回答

    這是一個雙重問題。 我一直在閱讀關於編譯器如何處理代碼的錯綜複雜的問題,並且我有這種困惑。這兩個過程似乎都遵循相同的符號整數符號擴展邏輯。那麼轉換是否僅僅作爲算術右移來實現呢? 其中一個例子規定的函數,如 Int Fun1(unsigned word) { Return (int) ((word << 24) >> 24); } 傳遞的參數爲0×87654321。 由於這將在轉換

    1熱度

    1回答

    我有一個「錯誤」,我花了相當長的一段追逐: typedef union { struct { uint8_t mode: 1; uint8_t texture: 4; uint8_t blend_mode: 2; }; uint8_t key; } RenderKey; 後來這個聯盟將被初始化(堆棧): Buffers bu