问题标签 [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.
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?
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 而没有定义它?如果是这种情况,我该怎么做才能解决它?
c++ - C++两个头文件相互包含
共有三个.h
文件
啊:
溴化氢
卡片.h
由于A.h
和B.h
相互包含,因此并非所有头文件都包含在内。
请给我一些建议。
visual-studio - 定义语句需要一个声明 C++
好的,所以我缩小了与#ifndef
和/或#define
关键字有关的问题。
我有 2 个其他.h
文件,没有错误的文件和没有错误的文件之间的唯一区别是语法突出显示,#ifndef EMPLOYEE_H
并且在#define EMPLOYEE_H
有错误的文件上交换。
我不确定这意味着什么(我正在使用 Visual Studio),但它导致我所有其他定义的语句变白,就像它们被包含在某些语句中一样。
我不知道怎么了!
这是我的代码:
我的错误是:
错误 1 错误 C2059:语法错误:'}'
错误 2 错误 C2143:语法错误:缺少 ';' 前 '}'
4 IntelliSense:预期声明
块引用
错误也在最后突出显示
};
。
swift - Swift 中代码的条件排除
我正在尝试为特定目标排除 Swift 文件的某些部分。然而,我没有找到 #ifndef Objective-c 指令的任何替代品,而且如果我使用以下形式:
预处理器完全忽略该指令并尝试编译 triggerActiveLocationUpdate。请注意,#if tax_coops指令在同一文件的其他部分受到尊重。
有什么方法可以简单地排除 Swift 中的一些代码和/或为什么我的修复不起作用?
c - 为什么只定义尚未定义的宏?
在我们的 C 代码库中,我看到每个宏都以下列方式定义:
进行这些定义检查而不仅仅是定义宏的基本原理是什么?
我在网络上的任何地方都找不到这种做法的解释。
c - #ifndef 可以忽略方法或变量重复吗?
考虑代码。
代码可以是以下情况
foo.h
包含在许多 C 文件中。当我只编译 case 1 没有错误时,其他情况会抛出重复错误。
为什么foo.h
除了编译时没有连接到 C 文件时会这样?
c++ - 我是否检查是否存在带有或不带有括号的宏函数?
在我定义一个宏函数之前,我可以检查它是否已经存在
(这样可以避免覆盖之前的定义)。
我可以像这样实现检查和定义:
或者像这样:
当函数已经定义时,两者似乎都可以工作。
那么,哪个是正确的?哪个是首选?
c - 预处理器参数和在 C 中编译 #ifndef #ifdef
编译文件时尝试在我的代码中应用默认值。
我需要在我的代码中将定义的关键字设置为某个值。
因此,当我编译代码并且它在编译器的参数中没有收到任何定义时,它将使用我的默认值。
我不确定如何做到这一点,但我有一个小主意:
因此,如果我将其放入代码中并在参数中使用此命令行:
它将使用 10 有默认值吗?
如果我在编译中使用这个命令行:
它将使用 5 作为其新设置?
阅读有关此的文档,我不太清楚。