gpt4 book ai didi

c - 使用 64 位编译器编译时出现奇怪的定义错误

转载 作者:可可西里 更新时间:2023-11-01 11:49:41 26 4
gpt4 key购买 nike

我尝试使用 64 位 MinGW GCC 编译器编译 enigma 套件 ( http://www.bytereef.org/enigma-suite.html )。当我使用 32 位编译器时,一切正常。使用 64 位时,出现以下错误:

enigma\global.h|6|error: expected identifier or '(' before numeric constant|

有问题的行是:

#define H 0

出于好奇,我将行更改为

#define H3 0 

并且有效(当然是在更改所有外观之后)。谁能解释这种行为?

最佳答案

MinGW 5.1 的标题为 mingw32\i686-w64-mingw32\include\winnt.h .它包含第 6889 行的结构定义:

DWORD H : 1;

当然,如果用#define H 0包含的header更高,那就有问题了。 .

MinGW 4.8没有这样的结构,这里可以编译。


简单的解决方法是移动 #include <windows.h>hillclimb.c 之上

关于c - 使用 64 位编译器编译时出现奇怪的定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com