笔试真题 | C关键词的描述

C关键词的描述

关键字 特征 应用
const 编译时分配,只读 修饰常量,指针
static 编译时分配空间,静态全局变量 修饰变量,函数
volatile 编译时不优化:从内存中取值,不是寄存器中 多线程访问一个全局变量时
sizeof 编译时:计算 计算类型占用的空间大小
strlen 运行时:计算 计算字符串的长度,不是类型占内存的大小
assert 运行时:断言--是,不是函数; 如果条件错误,则终止程序执行;
extern 编译时:扩展声明 声明全局变量/函数;
Union 共享内存空间,任意时刻只有一个数据成员可以有值 计算内存字节的空间时,以最大值为准
typedef 运行时:类型重定义..可以重定义类型 定义函数指针
#define 预编译时:宏定义 定义频繁使用的短小函数,在预编译的时候直接替换
  1. const 与 #define相比?
    • const 常量有数据类型,而宏常量没有数据类型
    • 编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误
    • 集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。
  2. inline和#define对比
    • inline代码放入预编译器符号表中,高效;它是个真正的函数,调用时有严格的参数检测

const : 只读

  • 被const修饰的就只能读:整形数,指针;
  • const修饰的变量为只读变量,定义一个const类型的变量时必须完成初始化
Const int a; 		// a是一个常量整形,值不能修改
int const a;		 // 同上
const int *a; 		// a是一个**指向常整型数的指针**;整型数是不可修改的,但指针可以
int	const *a;		//同上
int * const a; 		// a **指向整型数的常指针**;指针指向的整型数是可以修改的,但指针是不可修改
const int * const a; 
int const * const a  	//a是一个**指向常整型数的常指针**;指针指向的整型数是不可修改的,同时指针也是不可修改的
  1. const的作用?
    • 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。
    • 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
    • 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

ARM/Linux嵌入式真题 文章被收录于专栏

让实战与真题助你offer满天飞!!! 每周更新!!! 励志做最全ARM/Linux嵌入式面试必考必会的题库。 励志讲清每一个知识点,找到每个问题最好的答案。 让你学懂,掌握,融会贯通。 因为技术知识工作中也会用到,所以踏实学习哦!!!

全部评论

相关推荐

量化私募急招~~!!!《资深C++开发工程师 》base北京、上海P8级及以上junior的C++开发工程师也看,可以私聊问要求  职位描述【岗位职责】1. 参与交易平台的设计、开发与测试,实现交易策略、风控等需求;2. 开发交易接口与行情接口,完成与关联机构的对接;3. 与策略研究人员沟通,获取需求,负责提出设计以及实现;4. 研究并应用网络编程、进程间通讯、高性能计算、机器学习等技术。【任职要求】1. 3年以上C/C++开发经验,精通C/C++开发2. 优秀的软件设计能力3. 优秀的软件调试和性能优化能力,能够持续改进核心组件、重构系统4. 热爱coding,愿意主动花时间钻研技术,不断提升自己和系统;5. 良好的编程习惯,高效的沟通能力和快速学习能力;6. 扎实的C++(>C++11)基础概念,熟练掌握Linux的基本命令等;7. 掌握计算机体系结构、Linux内核、网络协议、数据库、分布式计算等知识体系,熟悉x86计算机体系结构。【加分项】1. 国内外编程比赛、数学竞赛等获奖经历;2. 谷歌、微软、腾讯等知名机构研发部门的实习经历;3. 有Linux内核、驱动、内存数据库、FPGA中某项开发经验;4. 熟悉金融衍生品交易类业务、技术架构;5. 热爱开源技术,活跃于GitHub等开源社区,为开源项目贡献过代码。
投递谷歌等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务