关键字、标识符、宏、预定义、预处理、编译、替换、预处理指令、

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

标识符:

标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。

标识符就是程序员自己规定的具有特定含义的词,比如类名称,属性名称,变量名等。

预定义标识符:

每个C语言的字要么归为关键字,要么归为标识符

标识符分为用户标识符预定义标识符

预定义标识符是C语言中系统预先定义的标识符,如系统类库名、系统常量名、系统函数名。预定义标识符具有见字明义的特点,如函数“格式输出”(英语全称加缩写:printf)、“格式输入”(英语全称加缩写:scanf)、sinisalnum等等。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原意,使用不当还会使程序出错。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#define 标识符 字符串

其中的标识符就是所谓的符号常量。也称为宏名

预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。

宏名可以用户自定义,但标准头文件中有一些预定义的宏

宏还分为两种:类对象宏(object-like marco)和类函数宏(function-like marco)

掌握"宏"概念的关键是“”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。

类对象宏定义的组成

#define PX printf(“x is %d.\n”,x)

预处理指令 替换体

类函数宏:

#define MEAN(X,Y)  (((X)+(Y))/2)

宏 宏参数  替换体

宏的好处:可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。可移植性。

预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

预定义宏

_ _DATA_ _   预处理日期(“Mmm dd yyyy”形式的字符串字面量,如 Nov 23 2013);

_ _FILE_ _   表示当前源代码文件名的字符串字面量

_ _LINE_ _   表示当前源代码文件中行号的整型常量

_ _STDC_ _ 设置为1时,表示遵循C标准

_ _STDC_HOSTED_ _  本机环境设置为1;否则设置为0

_ _STDC_VERSION_ _  支持C99标准,设置为199901L;支持C11标准,设置为201112L

_ _TIME_ _   翻译代码的时间,格式为“hh:mm:ss”

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

一些术语待总结和理解:

命令行参数

泛型、泛型选择表达式

内联函数、减少函数调用开销

_Noreturn函数

#pragma

C11、C99、ANSI C、UNIX C

C库

堆和栈的概念

stdarg.h  函数可变参数、变参宏

常见的数据形式:队列、列表、链表、二叉树、堆和栈

ADT 抽象数据类型

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

C语言中一些术语的梳理_持续更新的更多相关文章

  1. iOS中容易混淆的知识点(持续更新中)

    1.成员变量和属性的区别 @interface Person : NSObject { NSString *_sex; } @property (nonatomic, copy) NSString * ...

  2. C#、Java中的一些小知识点总结(持续更新......)

    前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...

  3. C语言中的常用函数_持续更新

    isspace函数: 背景:之前遇到scanf()输入时会把换行符留在输入队列的情况,如果下次要用到getchar(),但是会导致其先返回这个我们不需要的换行符:从而导致不希望出现的行为: 说明:检查 ...

  4. 某人在企业中遇到的Spark问题记录[持续更新]

    https://github.com/ssg-7max/ssg 目前 ssg内公司内部 spark streaming 处理数据源是kafka 目前遇到最大的问题是,会延迟,例如我们配置1分钟让窗口计 ...

  5. 以.net core重构原有.net framework过程中的一些API变更记录(持续更新)

    1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(nets ...

  6. MySQL使用过程中的报错处理(持续更新)

    一.数据库初始化 1.Percona的MySQL 5.6.20版本数据库初始化 初始化命令(MySQL 5.6版本不适用mysqld命令进行初始化) ./scripts/mysql_install_d ...

  7. Spring配置文件中的那些标签意味着什么(持续更新)

    前言 在看这边博客时,如果遇到有什么不清楚的地方,可以参考我另外一边博文.Spring标签的探索,根据这边文章自己来深入源码一探究竟.这里自己只是简单记录一下各标签作用,每个人困惑不同,自然需求也不一 ...

  8. dubbo初认知(dubbo和springCloud关系,在微服务架构中的作用等)(持续更新中)

    一:dubbo是什么? dobbuo是阿里开源的一个高性能优秀的服务框架, 可通过高性能的 RPC 实现服务的输出和输入功能,使得应用可以和 高性能的rpc实现输入和输出的功能,可以了  Spring ...

  9. 个人在 laravel 开发中使用到的一些技巧(持续更新)

    1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...

随机推荐

  1. DAY17-认证系统

    COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...

  2. spring bean属性及子元素使用总结

    spring bean属性及子元素使用总结 2016-08-03 00:00 97人阅读 评论(0) 收藏 举报  分类: Spring&SpringMVC(17)  版权声明:本文为博主原创 ...

  3. Jedis连接redis的一些基本操作

    Jedis其实就是redis的一个连接方式 需要的jar包:

  4. spring 的aop操作

  5. jetty分析

    jetty处理过程: 1  new Server() (1)初试化线程池  生成固定大小线程数,新来的线程放入BlockingQueue. (2)初始化ServerConnector 初始化 sche ...

  6. lucene、solr中的日期衰减方法-------function query --尚未测试在solr4.8

    经常有一种情景是这样的:我们索引了N年的文章,而查询时候无论直接用相关度.或者用时间排序,都是比较鲁莽的:我们想要一种既要相关度比较高,又要时间上比较新的文章. 这时候的解决办法就是,自定义日期衰减的 ...

  7. ReactNative安装配置

    1.安装jdk1.8,配置好path, javac,java -version 2.安装设置Android sdk a. 解压:D:\www\sdk\adt-bundle-windows-x86_64 ...

  8. C++指针作为函数的参数进行传递时注意的问题

    应注意问题: 当指针作为函数的参数进行传递的时候,本质上还是进行的"值传递",也就是复制了一个新的指向该地址的指针变量. 只有在被调函数中,对指针进行引用操作,才可以达到不需要返回 ...

  9. C语言中的static的作用?

    在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)第一个作用:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话 ...

  10. java全栈day03--循环高级

    今日主要内容介绍1.引用类型变量的创建及使用2.流程控制语句之选择语句3.流程控制语句之循环语句4.循环高级01创建引用类型变量公式 * A: 创建引用类型变量公式 * a: 我们要学的Scanner ...