c++宏
来源:互联网 发布:知乎精彩回答 微盘 编辑:程序博客网 时间:2024/06/03 13:51
_Pragma once操作符
例如我们在头文件中定义了如下语句
#pragma once
则表示该指令会指示编译器该头文件只会被编译一次(保证头文件只被include一次)
而c++11中定义了与#pragma功能相同的操作符_Pgrama,它的表示形式如下
_Pragma(字符串字面量)
其使用方法和sizeof一样将字符串字面量作为参数卸载括号内即可,例如下面的语句和上面的效果一样
_Pragma("once");
注意:_Pragma()在vs2015中不可用
变长参数的宏定义以及_VA_ARGS_
变长参数的宏定义中参数列表中的最后一个参数为省略号,而预定义宏_VA_ARGS_则可以在宏定义的实现部分替换省略号所代表的字符,相关代码举例如下
//注意此段代码在vs2015中不可实现,因为_VA_ARGS_未定义
#include<iostream>
using namespace std;
#define pr(...) printf(_VA_ARGS_)
int main()
{
for (int i = 0; i < 9;i++)
{
pr("执行次数\n" );
cout << i << endl;
}
system("pause");
}
查看编译器中long long 值的最大值和最小值的方法
#include<iostream>
using namespace std;
int main()
{
cout<< LONG_MIN<< "_" << LLONG_MAX << endl;
system("pause");
}
_cplusplus宏
用于c和c++的混编
#include<iostream>
using namespace std;
#ifdef _cplusplus
extern "C" {
#endif
//一些代码
#ifdef _cplusplus
}
#endif
断言函数 : assert()
它的作用是帮助程序开发者快速定位到那些违反了某些前提条件的程序错误,在c++中,标准在<cassert>或<assert.h>头文件中为程序员提供了assert宏,用于在程序运行时进行断言,相关举例如下:
#include<iostream>
#include<cassert>
using namespace std;
int function(int m)
{
assert(m != 0);
return 9 / m;
}
int main()
{
int a = function(0);
}
- [c/c++]宏定义,#,##
- [c/c++]宏定义,#,##
- [c/c++]宏定义,#,##
- C++/C 宏列表
- 【C/C++】宏
- C/C++-技巧-宏
- C/C++-技巧-宏
- C语言宏定义详解 - [C,C++]
- C宏
- C宏
- C宏
- C宏
- C-宏
- C宏
- C-宏
- 一个小小的C语言宏定义错误 - [C,C++]
- (转)C语言宏定义详解 - [C,C++]
- C++/C语言函数:isalpha()函数 isdigit(int c)宏
- SpringMVC流程图详解
- 关于iOS 的一些总结
- 一般的c和c++工程头文件里面一般放什么
- 为什么Java byte类型的取值范围为-128~127
- 【Linux入门】概述
- c++宏
- HMM(Hidden Markov Model)学习
- Java程序执行远程linux命令
- CJOJ 2484 函数最小值 / Luogu 2085 函数最小值
- 利用nginx和docker实现一个简单负载均衡
- 触摸事件的传递过程
- HDU4734 F(x)[数位DP]
- C/C++ 类型转换
- JS本地面向对象Math数字的常使用方法