《程序员面试笔试宝典》C知识归纳
来源:互联网 发布:英语基础自学软件 编辑:程序博客网 时间:2024/04/28 07:28
ASSERT()是一个调试程序时经常使用的宏,用于捕获非法情况。定义在<assert.h>头文件中,计算括号内表达式的值,值为false(0),报告错误,终止运行。ASSERT()只在Debug版本中有,编译的Release版本则被忽略。ASSERT()是宏,assert()是ANSIC标准中规定的函数,类似ASSERT(),但是可以用在Release版本中。在包含#include<assert.h>前加上#define NDEBUG禁用assert()调用。
////////////////////////////////////////////////////////////////////////////////////////////
i++ = 5;不可赋值,++i = 5;可以赋值。i++表示取i地址,把值放入寄存器,然后对内存中的i加1。++i表示取i地址,对内容加1,放入寄存器。这里的寄存器里存的应该就是计算时取的值,所以计算时哪怕a = 1+(i++);这样加了括号,和a = 1+i++;也没有区别,最后的a都是用i在寄存器中的值计算后赋的值。
////////////////////////////////////////////////////////////////////////////////////////////
使用伪指令#pragma pack(n),C编译器将按照n个字节对齐。#pragma pack(n)取消自定义字节对齐方式。_attribute((aligned(n)))让所作用的结构成员对齐在n字节自然边界上。结构中成员大于n,则按照最大成员长度来对齐。_attribute_((packed))取消结构在编译过程中的优化对齐,按照实际占用字节数对齐。
当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
void fun(char a[100])
{
//sizeof(a)=4;
}
////////////////////////////////////////////////////////////////////////////////////////////
- 《程序员面试笔试宝典》C知识归纳
- 程序员面试笔试宝典
- 程序员笔试面试宝典
- 程序员面试笔试宝典
- 程序员面试笔试宝典
- 程序员面试宝典---3.1 笔试
- 程序员面试宝典知识总结
- linux知识笔试与面试宝典(一)
- linux知识笔试与面试宝典(二)
- linux知识笔试与面试宝典(三)
- 程序员面试笔试宝典学习记录(二)(程序设计相关知识)
- 程序员面试笔试宝典学习记录(二)(程序设计相关知识)
- 程序员面试笔试宝典学习记录(三)(数据库相关知识)
- 程序员面试笔试宝典学习记录(四)(网络相关知识)
- 程序员面试笔试宝典学习记录(五)(操作系统相关知识)
- 程序员面试笔试宝典学习记录(七)(海量数据相关知识)
- 程序员面试笔试宝典学习记录(二)(程序设计相关知识)
- 程序员面试笔试宝典学习记录(三)(数据库相关知识)
- (iOS)微信分享,出现App id参数错误
- Spring的切面 AOP
- 服务器安装ESXi系统时卡在loading /lsi_mr3.v00
- IIS支持解析json
- QSC and Master 区间dp
- 《程序员面试笔试宝典》C知识归纳
- Spring通过ApplicationContextAware获得bean的方法、获取数据库连接的方法、获取Appl...
- 指定线程在特定核心
- CoordinatorLayout配合AppBarLayout,Toolbar和TabLayout的使用
- erlang large日志系统代码阅读(一):lager_app
- 火狐HttpTool使用方法post
- HTML5+JS游戏开发模块----canvas图片拖放
- easyUI 设置datagrid的行高 + 文字超宽换行
- 成功的境界