gpt4 book ai didi

c++ - 为什么要打扰预处理器指令?

转载 作者:IT老高 更新时间:2023-10-28 21:49:03 25 4
gpt4 key购买 nike

这个问题可能看起来相当基础,但来自工程(非计算机科学)背景,我不确定某些 C++ 代码中的 '#'s 片段是什么。

快速搜索后,我找到了简洁明了的 cplusplus关于预处理器指令的教程页面。

但是,为什么要为预处理指令的概念烦恼呢?是不是不能写出可以给常量赋值、定义子程序/函数/宏和处理错误的等价代码?

我想我最终想知道什么时候使用这种预处理器指令是好的做法,什么时候不是。

最佳答案

当您需要做一些超出实际应用程序范围的事情时,您可以使用预处理器指令。例如,您将看到根据构建可执行文件的体系结构来包含或不包含代码的预处理。例如:

#ifdef _WIN32 // _WIN32 is defined by Windows 32 compilers
#include <windows.h>
#else
#include <unistd.h>
#endif

预处理器指令也用于保护包含,以便类/函数等不会被多次定义。

#ifndef MY_CLASS_6C1147A1_BE88_46d8_A713_64973C9A2DB7_H_
#define MY_CLASS_6C1147A1_BE88_46d8_A713_64973C9A2DB7_H_
class MyClass {
....
};
#endif

另一个用途是在代码和库中嵌入版本控制。

在 Makefile 中,您有以下内容:

-D MY_APP_VERSION=4.5.1

在你拥有的代码中

cout << "My application name version: " << MY_APP_VERSION << endl;

关于c++ - 为什么要打扰预处理器指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1785572/

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