【问题标题】:#include <windows.h> causes errors#include <windows.h> 导致错误
【发布时间】:2020-06-07 13:16:32
【问题描述】:

我正在尝试使用 windows.h 头文件中的 GetTickCount()。现在我的代码如下所示:

#include <stdio.h>
#include <string.h>
#include "declarations.h"
#define INPUTBUFFER 400 * 6
#define START_POS "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
#include <windows.h>

void interface() {
.....
.....
}

编译器返回 2 个错误:

  1. 在 '(' 标记之前需要 '{'(指向“接口”之后的 '(')
  2. 声明说明符中有2个或更多数据类型(指向“接口”)

当我注释掉#include 时,界面函数工作正常。我的代码中什至还没有 GetTickCount()。我检查了 gcc 路径以确保 windows.h 在那里,所以我不确定为什么会出现此错误。

【问题讨论】:

  • #define interface struct 存在于 Windows 标头中。所以你为函数选择了坏名

标签: c windows gcc c-preprocessor


【解决方案1】:

正如 RbMm 在评论中指出的那样,Windows 标头包含“#define interface struct”,因此编译器将您的代码视为“void struct() { ....}”,这是无效的 C++

您需要重命名函数(可能是更好的选择)或在函数前添加“#undef 接口”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多