文章分类 - c/c++ 剖析
摘要:#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在...
阅读全文
摘要:一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放在
阅读全文
摘要:右左法则不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。 右左法则原文: The right-left rule:Start reading the declaration from the innermost parentheses,go right,and then go left.When you encounter parentheses, the direction should be reversed.Once everything in the parenthes
阅读全文
摘要:在c语言标准中定义了32个关键字,这32个关键字描述了有数据类型,或修饰数据类型,代码控制等。因此,深度学习c语言首先得把这32个关键字分析透彻,好现在就一个个来看这些关键字。首先看看数据类型。我们先要问为什么c语言中要加入int,float,char等数据类型,以及什么是数据类型?在汇编语言中是没有这个概念的。 1 基本数据类型 1.1 什么是数据类型? 答:数据类型是固定内存大小的别名,比如在32位机器中,int代表4个字节,char代表1个字节。数据类型是创建变量的模子 1.2 什么要有数据类型? 答:数据类型是创建变量的模子。这就好比生活中的鞋子,小孩子脚小,那么作鞋使用的模具...
阅读全文
摘要:#include <stdio.h>int main(){ printf("hello world ,my name's legend\n"); return 0;}
阅读全文