c-preprocessor

    4熱度

    1回答

    我認爲這將是很好的,建立我的全球GHCI配置,使我的常用導入自動發生時,提供它們的包都存在。 我嘗試添加這~/.ghc/ghci.conf: :set -XCPP #ifdef MIN_VERSION_containers import Data.Set (Set) import qualified Data.Set as Set import Data.Map (Map) i

    -1熱度

    1回答

    我在寫一個CUDA內核,並且遇到了一些奇怪的行爲,整數除法和常量讓我撓頭。 我會在下面說明會發生什麼: #define X 8 #define Y 4 #define K X/Y ...code.... int var = 8; ...code.... printf("K = %d, var = %d, var/K = %d\n", K, var, var/K); 我使用VAR/K

    14熱度

    2回答

    我期待到Linux內核頭文件if_link.h,它包含此枚舉: enum { IFLA_UNSPEC, IFLA_ADDRESS, IFLA_BROADCAST, IFLA_IFNAME, IFLA_MTU, IFLA_LINK, IFLA_QDISC, IFLA_STATS, IFLA_C

    1熱度

    1回答

    我在我的終端上運行prova.c文件。 我跑GCC的命令行: gcc -Wall -std=c99 -E prova.c prova.c: int main(int argc, char* argv[]) { int a=1; int b=2; return a+b; } 標準輸出: # 1 "prova.c" # 1 "<built-

    0熱度

    1回答

    當我使用-g選項運行gcc時,這使我能夠在使用objdump運行可執行文件時看到一些c代碼。 我有一個程序在#if塊中有一段代碼。當我使用-g運行gcc並運行objdump時,它會顯示不應包含在#if中的c代碼。 例如用下面的C語言代碼: #define ENABLED 0 #if ENABLED startSomething(); #endif 當與gcc -g編譯到star

    5熱度

    1回答

    我想在C中使用Doxygen生成仿真模板的文檔,但沒有取得太大的成功。我希望有人知道如何使doxygen預處理器中的宏觀欺騙工作?我已經嘗試啓用「MACRO_EXPANSION」而沒有運氣。 編輯:這個問題最具變性的形式是: 「我該如何讓Doxygen以類似C預處理器的方式處理預處理器指令#include?」 我在一個文件夾 「測試」(一個非常人爲的例子)以下代碼: templates.h #if

    0熱度

    1回答

    如果有一個宏是另一個宏的參數,並且該參數要在宏定義中進行字符串化,是否可以將作爲參數的宏但不是其原始值?一個例子如下, #define EXAMPLE "original" #define CONCATENATE(X) "Concatenate Strings " #X CONCATENATE(BYTE) //Results as "Concatenate Strings EXAMPLE"

    1熱度

    1回答

    我遇到了一個行爲,我發現它與_Pragma("GCC error")的預處理很不一樣。 我得到了與avr-gcc(GCC)4.9.2和gcc 5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1〜16.04.4)相同的結果。 的源代碼: #define E _Pragma("GCC error \"This is an error\"") #define _IS_VO

    -1熱度

    1回答

    我打電話一個cmd,如: perl ScriptGen.pl Target.c %PreProcessorPath%\preproc.exe Arg1 Arg2 > clean.c 而且我得到這意味着ARG1和Arg2所得不正確地傳遞到預處理器錯誤。 我想通過將目標文件和預處理程序路徑本身作爲perl腳本的參數來調用此perl腳本,並且Arg1 Arg2是preproc理解的perl腳本的參數

    1熱度

    2回答

    我正在一個項目中,我有一個矩陣,我正在通過向上,向下,向左和向右移動一個字符來處理矩陣。我將這些動作存儲在一個char數組中。現在我想在打印完其他動作之後僅打印矩陣的最後10個狀態。但我不想讓其他動作打印,只是矩陣的最後10個狀態。 所以我遍歷這樣的動作: int i = 0; for (; i < strlen(movesArray); i++) { operation = mov