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