c-preprocessor

    0熱度

    1回答

    我測試的第6代SKYLAKE微架構和CPU有movbe: $ cat /proc/cpuinfo | grep movbe flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscal

    1熱度

    2回答

    捕獲請看下面的代碼: #include <stdio.h> #define MACRO_A "early" #define MACRO_B MACRO_A #undef MACRO_A #define MACRO_A "late" #define MACRO_C MACRO_A int main(void) { printf("MACRO_B = %s, MACRO_C

    3熱度

    2回答

    我想寫一些C可重用的通用型安全的代碼,使用宏,類似於如何klib作品: #define Fifo_define(TYPE) \ \ typedef struct { \ TYPE *head; \ TYPE *tail; \ size_t capacity; \ } Fifo_##TYPE, *pFifo_##TYPE; \

    9熱度

    3回答

    我試圖應用X Macro概念,以便有可能將所有結構成員初始化爲自定義默認(無效)值。我寫了下面的代碼: #define LIST_OF_STRUCT_MEMBERS_foo \ X(a) \ X(b) \ X(c) #define X(name) int name; struct foo { LIST_OF_STRUCT_MEMBERS_foo };

    0熱度

    1回答

    #include <stdio.h> #define abs(x) x > 0 ? x : -x int main(void) { printf("%d\n", abs(abs(3 - 5))); return 0; } 爲什麼上面的程序輸出8而不是2而下面的程序輸出2呢? #include <stdio.h> int abs(int x) { ret

    1熱度

    1回答

    我正在使用具有兩個大型繼承樹的數學軟件框架。這在概念上受到啓發:一個是用於一般功能(它們繼承自Func),另一個用於歸一化概率密度函數(它們繼承自Pdf)。 但是,有一些原則上應該存在於兩個層級中的類,例如Gauss函數。 目前,有一個GaussFunc和GaussPdf類具有相同的源代碼實現方式中,除了類名,並從分別Func和Pdf,繼承。 我想通過擺脫源代碼的第二個副本來改善這種情況。我可以想

    2熱度

    1回答

    長期用戶,這裏是第一次海報。我找了一個類似的問題,但一直無法找到任何東西。 我正在通過KeilμVision上C語言編寫的一些Cortex-M3工作代碼工作。 在記錄ADC值的函數中,使用比例因子將位從位轉換回電壓。 我的問題是圍繞縮放因子,這是在頭文件中定義: #define INPUT_VALUE_MAX (uint16_t)((1<<12)-1) 因此,這等於4095,這是有道理的,因爲它是

    0熱度

    2回答

    我想閱讀和理解(here)用C編寫的一個文件,不知道多少C(或者如果它是C++,開始用),我不知道如何執行以下操作: #define BEGIN yy_start = 1 + 2 * 調用時像這樣: BEGIN(new_state) 正在工作。我知道BEGIN是宏/佔位符設置yy_start。然而,我無法找到任何關於如何處理參數的問題,並且operands沒有讓我知道任何地方。 問題:如果

    -1熱度

    1回答

    我想了解preprocessor magic如何工作,以及如何根據我的需要調整方法。我做錯了什麼,編譯失敗。我想知道在哪個擴展步驟中存在一個錯誤,並逐步看到擴展。 gcc -E僅適用於有效的代碼,所以我正在尋找一個側邊工具來展示擴展樹。

    1熱度

    1回答

    這與Multi line preprocessor macros有關。我對#if或#elif感興趣,而不是定義的宏。例如,如下有效: #if defined(X) || defined(Y) || \ defined(Z) ... #endif 我問的原因是鐺,GCC和MSVC接受它,但在Solaris上某些Sun的工具都在抱怨它。 GCC文檔在1.2 Initial proce