当前位置: 首页 > wzjs >正文

常州网站建设key de2345纯净版推广包

常州网站建设key de,2345纯净版推广包,门户网站建设方案招标文件,寻找哈尔滨网站建设宏概述 在编程中,宏(Macro)是一种预处理器指令 宏可以让程序员在源代码中定义一段值或代码的别名,在编译程序之前,预处理器会查找这些宏,并将其替换为相应的值或代码 C 宏 在 C 中,宏可以通过…

宏概述

  1. 在编程中,宏(Macro)是一种预处理器指令

  2. 宏可以让程序员在源代码中定义一段值或代码的别名,在编译程序之前,预处理器会查找这些宏,并将其替换为相应的值或代码


C++ 宏

  1. 在 C++ 中,宏可以通过预处理器指令 #define 来定义

  2. 宏可以是简单的常量替换,也可以函数样式的宏(函数样式的宏并不是真正的函数)

  3. 宏通常全大写以区别于变量

  4. 可以使用反斜杠(\)实现多行宏


一、简单常量替换宏

#include <iostream>using namespace std;#define PI 3.14159int main() {cout << PI << endl;double radius = 5.0;double area = PI * radius * radius;cout << area << endl;return 0;
}
  • 输出结果
3.14159
78.5397

二、函数样式的宏

#include <iostream>using namespace std;// 使用反斜杠(\)实现多行宏
#define CALCULATE_MAXIMUM_1(firstNumber, secondNumber) \((firstNumber > secondNumber) ? firstNumber : secondNumber)#define CALCULATE_MAXIMUM_2(firstNumber, secondNumber) ((firstNumber > secondNumber) ? firstNumber : secondNumber)int main() {int a = 5, b = 10;int result1 = CALCULATE_MAXIMUM_1(a, b);int result2 = CALCULATE_MAXIMUM_2(a, b);cout << result1 << endl;cout << result2 << endl;return 0;
}
  • 输出结果
10
10

三、多行宏

#include <stdio.h>// 使用反斜杠(\)实现多行宏
#define PRINT_SUM(a, b) \printf("%d + %d = ", (a), (b)); \printf("%d\n", (a)+(b))int main() {PRINT_SUM(3, 5);return 0;
}

四、预定义宏

#include <stdio.h>int main() {printf("File: %s\n", __FILE__); // 当前文件名printf("Line: %d\n", __LINE__); // 当前行号printf("Date: %s\n", __DATE__); // 编译日期printf("Time: %s\n", __TIME__); // 编译时间return 0;
}

五、宏的特殊用法

1、字符串化宏
(1)基本介绍
#define STRINGIFY(x) #x
  • 将宏参数 x 直接转换为字符串常量(在编译期展开)
(2)演示
#include <iostream>using namespace std;#define STRINGIFY(x) #xint main() {// 将变量名转为字符串int someVar = 42;cout << "变量名: " << STRINGIFY(someVar) << endl;// 将表达式转为字符串cout << "表达式: " << STRINGIFY(3 + 5 * 2) << endl;return 0;
}
  • 输出结果
变量名: someVar
表达式: 3 + 5 * 2
2、连接宏
(1)基本介绍
#define STRINGIFY(x) #x
  • 将两个宏参数 a 和 b 直接拼接成一个符号(在编译期展开)
(2)演示
#include <iostream>using namespace std;#define CONCAT(a, b) a##bvoid print_hello()
{cout << "Hello World" << endl;
}int main() {// 拼接变量名int xy = 100;cout << CONCAT(x, y) << endl;// 拼接函数名CONCAT(print_, hello)();return 0;
}
  • 输出结果
100
Hello World
3、可变参数日志宏
(1)基本介绍
#define LOG(fmt, ...) printf("[LOG] " fmt "\n", ##__VA_ARGS__)
  • 可变参数日志输出,支持格式化字符串
(2)关键语法解析
  1. 字符串字面量的自动拼接
"[LOG] " fmt "\n"// 等价于
"[LOG] " "your_format" "\n"// 合并后
"[LOG] your_format\n"
  1. ##__VA_ARGS__ 是传入的可变参数,## 前缀用于当可变参数为空时,自动删除前面的逗号
LOG("No args");// 展开为
printf("[LOG] " "No args" "\n",);// 使用 ## 前缀后
printf("[LOG] " "No args" "\n");
(3)演示
#include <cstdio>#define LOG(fmt, ...) printf("[LOG] " fmt "\n", ##__VA_ARGS__)int main() {int error_code = 404;const char* path = "/index.html";LOG("程序启动");LOG("文件 %s 未找到,错误码: %d", path, error_code);return 0;
}
  • 输出结果
[LOG] 程序启动
[LOG] 文件 /index.html 未找到,错误码: 404
http://www.dtcms.com/wzjs/29026.html

相关文章:

  • 网站建设基本流程淘宝运营培训班去哪里学
  • 网站建设中心联系方式优化网站排名工具
  • wordpress 聊天插件太原seo顾问
  • 企业网站免费源码seo网站有哪些
  • 网站域名打开一个网站
  • 网站设计方案怎么做推广赚佣金的平台
  • 口碑好的秦皇岛网站建设哪里有深圳百度推广竞价托管
  • 北海网站建设百度竞价排名商业模式
  • 阿里云安装wordpress天津百度搜索排名优化
  • 做网站去哪里做好如何网站优化排名
  • 怎么做套版网站网站seo置顶 乐云践新专家
  • 网站url 结构百度权重1是什么意思
  • 做软件开发视频网站最有效的推广学校的方式
  • 实时军事热点wifi优化大师下载
  • 营销型网站开发推广游戏优化是什么意思?
  • 品牌查询网官网查询北京优化推广公司
  • 南宁站建好就够用百度地图优化排名方法
  • 在家做网站维护兼职免费的网站申请
  • 本溪网站制作小视频关键词汇总
  • 威客做的比较好的网站有哪些营销案例100例小故事
  • 头条新闻今日头条app下载整站优化服务
  • 连云港网站建设wang品牌广告投放
  • 直播软件下载网站个人网页生成器
  • 购物网站 页面设计北京seo优化wyhseo
  • 抖音代刷网站推广快速教育培训网站官网
  • 网站建设培训哪家好网站seo重庆
  • 网站logo在哪里修改搜索引擎分哪三类
  • 深圳网站建设 套餐营销顾问公司
  • 简洁企业网站模板抖音seo搜索引擎优化
  • 粉丝经济日渐蓬勃安徽网站seo公司