C/C++预处理命令
- 防止重复包含头文件
#ifndef __文件名大写_H__ #define __文件名大写_H__ #endif // __文件名大写_H__ // c++ pragma once 较老编译器不支持,
以上两种方法都行。
优缺点:
- 第一点,可以针对部分代码,所有编译器都支持。缺点时要写很多
- 第二点,代码简洁,缺点较老编译器不支持。
#if, #ifdef, #ifndef, #else, #elif, #endif // 这些命令让编译器进行简单的逻辑控制. 当一个文件被编译时, 你可以使用这些命令使某些行保留或者是去处. #if expression //如果表达式(expression)的值是"真"(true),那么紧随该命令的代码将会被编译. #ifdef macro //如果"macro"已经在一个#define声明中定义了, 那么紧随该命令的代码将会被编译. #ifndef macro //如果"macro"未在一个#define声明中定义, 那么紧随命令的代码将会被编译. //一些小边注: 命令#elif是"elseif"的一种缩写,并且他可以想你所意愿的一样工作. 你也可以在一个#if后插入一个"defined"或者"!defined"以获得更多的功能. //这里是一部分例子: #ifdef DEBUG cout << "This is the test version, i=" << i << endl; #else cout << "This is the production version!" << endl; #endif //你应该注意到第二个例子比在你的代码中插入多个"cout"进行调试的方法更简单.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现