C语言
文章平均质量分 73
jiang_dlut
Sleeping in Linux.
展开
-
C语言编译过程总结详解
<br />本来打算把编译部分的内容总结一下,偶然看到一位网友的文章写得很全面,故此稍加整理,以作备忘。<br /><br /> C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:<br /><br /> <br /> 从图上可转载 2010-10-13 14:34:00 · 619 阅读 · 0 评论 -
C语言对齐问题
<br />一、什么是对齐,以及为什么要对齐:<br />1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br />2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适原创 2010-10-25 14:56:00 · 710 阅读 · 2 评论 -
宏的副作用
试题3:写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事? least = MIN(*p++, b); 解答: #define MIN(A,B) ((A) MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,原创 2012-06-11 22:09:09 · 1525 阅读 · 0 评论 -
面试题
linux C程序员 经典面试题一想成为嵌入式程序员应知道的0x10个基本问题:预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基原创 2012-06-11 21:55:59 · 2483 阅读 · 0 评论 -
Linux C语言调用汇编
内核里面和一些开源的代码里,我们经常看到一些内联汇编(inline assemble)函数。里面经常有一些汇编代码下面的函数不是内联汇编,是一个C语言调用AT&T汇编 (还有一种Intel汇编)int replace(){int a=1;int b=2;asm("movl %1,%%eax" "movl %%eax,%0" : "=r" (b) /*原创 2012-11-07 20:30:54 · 2821 阅读 · 0 评论 -
Linux内核代码风格 CodingStyle
中文版维护者: 张乐 Zhang Le 中文版翻译者: 张乐 Zhang Le 中文版校译者: 王聪 Wang Cong wheelz kernel.zeng@gmail.com> 管旭东 Xudong Guan Li Zefan Wang Chen 以原创 2012-11-08 19:49:12 · 4057 阅读 · 0 评论 -
linux系统下注释乱码解决
用linux的人都知道,windows上开发的代码的中文或日语注释拿到liunx下会出现乱码。特别是在需要看这些代码的时候。全是乱码,让人有种想吐的冲动。还好,不难解决。我发现有三种方法解决如上问题。下面我就分享给大家。系统环境Ubuntu11.10-32bit。 1,最手工的方法。就是把这些代码拿到window上,然后将代码文件另存为新的文件。注意将编码格式选择为UTF-8。将所有转原创 2012-12-10 21:29:08 · 2803 阅读 · 0 评论