问题标签 [ifndef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1754 浏览

c - Typedef in header file not visible to another file that includes it

I am encountering the following problem in C: I declare a typedef for a struct in a headerfile ("mep.h")

I use another headerfile ("mep_types.h") that includes "mep.h", defines the struct "Mep_tag" and uses the "Mep" type name:

For some reason when this compiles, I get the following error: "mep_types.h: error: unknown type name "'Mep'".

However, if in the "mep.h" I place the typedef outside the ifndef guard like this...

... the "Mep" type name is visible in "mem_types.h".

Might someone know how this could happen?

0 投票
1 回答
177 浏览

c++ - 在 C++ 中使用 #ifndef 时遇到问题

我正在使用 WiringPi 为 Raspberry pi 创建一个软件。问题是,如果 WiringPi 没有检测到 Raspberry Pi,它将失败。因此,如果我想在不使用实际的 Raspberry pi 的情况下进行一些单元测试,我必须检查一个常量并且如果我正在测试中不要执行一些函数调用。

我有一个测试 cpp 文件,其中有我的 main() 函数,并且在文件的顶部有 #define OS_TESTING。我将类拆分为头文件和 cpp 文件,因此在该文件中包含所需的头文件。

问题是我有名为 GPS.cpp 的 cpp 文件,这里有 GPS.h 的代码。在 GPS.cpp 我做了一个#ifndef OS_TESTING,但它没有检测到它已经在 testing.cpp 中定义。

我的编译命令如下:

g++ testing.cpp GPS.cpp

是否有可能因为我在 GPS.cpp 中未包含的文件中有#define 而没有定义它?如果是这种情况,我该怎么做才能解决它?

0 投票
1 回答
1392 浏览

c++ - C++两个头文件相互包含

共有三个.h文件

啊:

溴化氢

卡片.h

由于A.hB.h相互包含,因此并非所有头文件都包含在内。

请给我一些建议。

0 投票
1 回答
3737 浏览

visual-studio - 定义语句需要一个声明 C++

好的,所以我缩小了与#ifndef和/或#define关键字有关的问题。

我有 2 个其他.h文件,没有错误的文件和没有错误的文件之间的唯一区别是语法突出显示,#ifndef EMPLOYEE_H并且在#define EMPLOYEE_H有错误的文件上交换。

我不确定这意味着什么(我正在使用 Visual Studio),但它导致我所有其他定义的语句变白,就像它们被包含在某些语句中一样。

我不知道怎么了!

这是我的代码:

我的错误是:

错误 1 ​​错误 C2059:语法错误:'}'

错误 2 错误 C2143:语法错误:缺少 ';' 前 '}'

4 IntelliSense:预期声明

块引用

错误也在最后突出显示 };

0 投票
2 回答
7447 浏览

swift - Swift 中代码的条件排除

我正在尝试为特定目标排除 Swift 文件的某些部分。然而,我没有找到 #ifndef Objective-c 指令的任何替代品,而且如果我使用以下形式:

预处理器完全忽略该指令并尝试编译 triggerActiveLocationUpdate。请注意,#if tax_coops指令在同一文件的其他部分受到尊重。

有什么方法可以简单地排除 Swift 中的一些代码和/或为什么我的修复不起作用?

0 投票
7 回答
5877 浏览

c - 为什么只定义尚未定义的宏?

在我们的 C 代码库中,我看到每个宏都以下列方式定义:

进行这些定义检查而不仅仅是定义宏的基本原理是什么?

我在网络上的任何地方都找不到这种做法的解释。

0 投票
1 回答
105 浏览

c - #ifndef 可以忽略方法或变量重复吗?

考虑代码。

代码可以是以下情况

foo.h包含在许多 C 文件中。当我只编译 case 1 没有错误时,其他情况会抛出重复错误。

为什么foo.h除了编译时没有连接到 C 文件时会这样?

0 投票
2 回答
240 浏览

c++ - 我是否检查是否存在带有或不带有括号的宏函数?

在我定义一个宏函数之前,我可以检查它是否已经存在
(这样可以避免覆盖之前的定义)。

我可以像这样实现检查和定义:

或者像这样:

当函数已经定义时,两者似乎都可以工作。
那么,哪个是正确的?哪个是首选?

0 投票
1 回答
1708 浏览

c - 预处理器参数和在 C 中编译 #ifndef #ifdef

编译文件时尝试在我的代码中应用默认值。

我需要在我的代码中将定义的关键字设置为某个值。

因此,当我编译代码并且它在编译器的参数中没有收到任何定义时,它将使用我的默认值。

我不确定如何做到这一点,但我有一个小主意:

因此,如果我将其放入代码中并在参数中使用此命令行:

它将使用 10 有默认值吗?

如果我在编译中使用这个命令行:

它将使用 5 作为其新设置?

阅读有关此的文档,我不太清楚。

0 投票
0 回答
59 浏览

winapi - TUIO #ifndef WIN32 被忽略

我在 Visual Studio 2013 中使用 TUIO 框架。当我构建时,出现错误“pthread.h no such file or directory”。看来 TUIO 可以在 Linux 和 Windows 上运行并#ifndef WIN32检查操作系统。虽然 Visual 似乎做对了,但在我构建时仍然会出现错误。

见下图:

在此处输入图像描述