C语言核心技术笔记(一)

C语言核心技术笔记(一)

C语言核心技术(原书第2版)彼得·普林茨(Peter Prinz)托尼·克劳福德(Tony Crawford).
地址: https://www.amazon.cn/gp/product/B07B8DQXTD/ref=ppx_yo_dt_b_d_asin_title_o01?ie=UTF8&psc=1

第一章

  1. C 编译器 提供 了 预定 义 标识符__ func__( 注意 这里 有 4 个 下划线 字符)。 可以 在任 何 函数 中 使用 它来 获取 包含 该 函数 名 的 字符串 字面 量。 这一点 对于 日志( log) 或 调试( debug) 输出 很有 帮助。

  2. 编译器 必须 至少 识别 函数 名 和 全局 变量 名 标识符( 具有 外部 链接 的 标识符) 的 前 31 个 字符, 而 其他 标识符 则 至少 识别 前 63 个 字符。

  3. 标签的作用域总是在标签所处的函数体内,即使其在某个嵌套语句块内。(常用于goto)

  4. 标识符的作用域通常从声明之后开始,但是结构、联合、枚举的类型名称,以及枚举常量中的名称是例外。当它们出现在声明中时,其作用域即开始,因此可以在声明中被本身再次引用。(可以用来解释结构体指针,以及一些递归定义的合法性)

  5. 预处理命令(如宏定义)可以跨越多行需要在前一行的最后使用反斜线符紧跟换行符,因为预处理器会将两者都删除。而行尾字符被视为预处理器命令的终止。

  6. 任何一个不完全为空的源码文件必须以一个换行符为结尾。每个注释都被看做是一个空格。

  7. 将源代码文件解析成标记过程中,编译器(或预处理器)总是采用如下原则: 每个连续的非空格符必须附加到正在读取的标记后面,直到出现附加后使得原有效标记变为无效为止。(如 a+++b 被解释成 a ++ + b, 因为 a+是无效的,++ 是有效的,&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值