符号的技巧

23 篇文章 0 订阅
基于唐老师   "C语言专题" 总结


Don Hsi-Yun Yang

注释

     编译器会在编译过程删除注释,但不是简单的删除而是用空格代替
     编译器认为双引号括起来内容都是字符串,双斜杠也不例外
     “/***/”型注释不能被嵌套   

方式
    /*   .....  */
    //
         
出色的注释

     注释应该准确易懂,防止二义性,错误性
     注释是对代码的提示,避免臃肿和喧宾夺主
     一目了然的代码避免加注释
     不要用缩写来注释代码,以免产生误解
     注释用于阐述原因而不是用于描述程序的运行过程

接续符
     
     接续符 ( \)是指示编译器行为的利器
     编译器会将反斜杠剔除,跟在反斜杠后面的字符自动解到前一行
     在接续单词时,反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格
     接续符适合在 定义宏代码块时使用  < 宏代码最后一行不需要加 \ >



转义符

转义符(\)主要用于表示无回显字符,也可用于表示常规字符



C中反斜杠(\)同时具有接续符和转义符的作用
当反斜杠作为接续符使用时可直接出现在程序中
当反斜杠作为转义符使用时需出现在字符或字符串中

单、双引号

单引号表示字符常量
双引号表示字符串常量

'a'表示字符常量,在内存中占一个字节
‘a’ + 1 表示‘a’的ASCII码加1,结果为‘b’

“a”表示字符串常量,在内存中占二个字节
“a” + 1表示指针运算,结果指向“a”结束符'\0'

本质上单引号括起来的一个字符代表整数
双引号括起来的字符代表一个指针

++、--

a++/--      先进行其它运算,后a+/-1
++/--a      先a+/-1,后进行其它运算

贪心法-- ++,--表达式的阅读技巧
     编译器处理的每个符号应该尽可能多的包含字符
     编译器以从左向右的顺序一个一个尽可能多的读入字符
     当即将读入的字符不可能和已读入的字符组成合法符号为止

#

#运算符用于在预编译期将 宏参数转换为字符串




##

##运算符用于在预编译期 粘连两个符号



预处理后文件



宏常量

#define定义宏常量可以出现在代码的任何地方
#define从本行开始,之后的代码都可以使用这个宏常量

宏表达式在预编译期被处理,编译器不知道宏表达式的存在
宏表达式用“实参” 完成替代形参,不进行任何运算
宏表达式没有任何的"调用"开销
宏表达式不能出现递归定义



内置宏








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值