那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串
已不再可能组成一个有意义的符号。这个处理的策略被称为“贪心法” 。需要注意到是,除了字符串与字符常量,符号的中间不能嵌有空白(空格、制表符、换行符等) 。比如:==是单个符号,而==是两个等号。
2.假定我们让 a除以 b,商为 q,余数为r:
q=a/b;
r=a%b;
这里不妨先假定 b大于 0。
我们希望 a、b、q、r之间维持什么样的关系呢?
1,最重要的一点,我们希望 q*b + r == a,因为这是定义余数的关系。
2,如果我们改变 a 的正负号,我们希望 q 的符号也随之改变,但 q 的绝对值不会变。
3., 在C语言里const修饰的只读变量不能用来作为定义数组的维数,也不能放在 case关键字后面,但在C++可以
4.用宏开始或结束一段注释是不行的
5.#pragma 预处理
#pragma message(“消息文本”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。
#pragma code_seg( ["section-name"[,"section-class"] ] )它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。
#pragma once 只要在头文件的最开始加入这条指令就能够保证头文件被编译一次
#pragma hdrstop表示预编译头文件到此为止,后面的头文件不进行预编译
#pragma resource "*.dfm"表示把*.dfm文件中的资源加入工程。
#pragma warning( disable : 4507 34; once : 4385; error : 164 )等价于:
#pragma warning(disable:4507 34) // 不显示 4507和 34号警告信息
#pragma warning(once:4385) // 4385号警告信息仅报告一次
#pragma warning(error:164) // 把 164号警告信息作为一个错误。
#pragma comment(...)该指令将一个注释记录放入一个对象文件或可执行文件中。常用的 lib关键字,可以帮我们连入一个库文件。 比如:
#pragma comment(lib, "user32.lib")
该指令用来将 user32.lib库文件加入到本工程中。
linker:将一个链接选项放入目标文件中,你可以使用这个指令来代替由命令行传入的或
者在开发环境中设置的链接选项,你可以指定/include选项来强制包含某个对象,例如:
#pragma comment(linker, "/include:__mySymbol")
使用指令#pragma pack (n),编译器将按照 n个字节对齐。使用指令#pragma pack (),编译器将取消自定义字节对齐方式。在#pragma pack (n)和#pragma pack ()之间的代码按 n个字节对齐。
使用“#” ,它可以把语言符号转化为字符串
##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号,