c++笔记20160612
2016-07-12 19:38
211 查看
1.编译器运行前会先运行预处理器,查找所有预处理指令
2.#include用于包含头文件
#dfine N 1<<2
当cout<<N;时结果不是4而是cout<<1<<2;
所以宏定义时不代表左移而是代替而已。
4.#define作用
1. 替字面常量
a.
#define ha 98.5
使用宏只是单纯文本替换,无类型信息。因此在要求类型的地方使用宏有危险性。
针对这种情况要使用符号常量:const double ha 98.5。
b.
#define N 100 对N宏定义
之后对3N 和N7定义
#define 3N 3*N 表示将3N定义为3*100即300
#define N7 N+7 表示将N7定义为100+7即107
2. 替运算符
#define ADD +
#define OR ||
#define BEGIN {
#define END }
#define OUT cout<<
void happy()
{
int a=1;
int b=a ADD a;
if(a OR b) OUT "happy is easy!";
}
3. 声明 符号(宏名称)
#define ok /* 只进行声明不定义*/
宏:一种批量批处理的称谓,宏是一种规则或模式,或称语法换。
以下是宏定义带参函数
注意事项:
/*
1 定义带参数的宏,名称和传参括号之间不能有空格
2 才如果定义的文本一行写不完就在后面添加 “\“宏定义的最后一行后面不添加 ”\ ”符号
3 在文本内使用注释不能使用双划线格式,需要用/**/,否则会被当做文本体
*/
2.#include用于包含头文件
包含c盘下头文件header.h #include"c:\header.h"
3.#define Num 100#dfine N 1<<2
当cout<<N;时结果不是4而是cout<<1<<2;
所以宏定义时不代表左移而是代替而已。
4.#define作用
1. 替字面常量
a.
#define ha 98.5
使用宏只是单纯文本替换,无类型信息。因此在要求类型的地方使用宏有危险性。
针对这种情况要使用符号常量:const double ha 98.5。
b.
#define N 100 对N宏定义
之后对3N 和N7定义
#define 3N 3*N 表示将3N定义为3*100即300
#define N7 N+7 表示将N7定义为100+7即107
2. 替运算符
#define ADD +
#define OR ||
#define BEGIN {
#define END }
#define OUT cout<<
void happy()
{
int a=1;
int b=a ADD a;
if(a OR b) OUT "happy is easy!";
}
3. 声明 符号(宏名称)
#define ok /* 只进行声明不定义*/
宏:一种批量批处理的称谓,宏是一种规则或模式,或称语法换。
以下是宏定义带参函数
#include<iostream> using namespace std; #define COMPARE(a,b) if(a>b)cout<<a<<" is bigger";\ else cout<<b<<"更大(后者)"; int main() { int a=3,b=4; COMPARE(a,b) }
注意事项:
/*
1 定义带参数的宏,名称和传参括号之间不能有空格
2 才如果定义的文本一行写不完就在后面添加 “\“宏定义的最后一行后面不添加 ”\ ”符号
3 在文本内使用注释不能使用双划线格式,需要用/**/,否则会被当做文本体
*/
相关文章推荐
- C++实现最短路算法——Dijkstra算法
- 判断101-200之间有多少个素数,并输出所有素数。
- C++ priority_queue
- 这些年看过的一些技术博客或网址
- JNI
- C++学习笔记:friend ostream &operator<<(ostream &stream, const Date& dt);
- C++中引用和指针的区别
- 哲学家c++11代码
- C++中的抽象基类示例
- 单片机生成二维码 C语言代码
- 在C++中使用栈来把中缀表达式转换为后缀表达式并求值,简单明了
- C语言实现二叉树
- C/C++语言字符串操作总结
- C#中如何使用VC++创建的dll动态链接库的返回参数
- C++ 在继承中使用virtual
- C语言实现二叉树的DFS
- 《C++标准库》
- C++ 模板类友元之输出流操作符重载
- c/c++ 函数中局部变量的返回
- 图形算法基础之向量