发布时间:2013-01-18 09:53:40
1. 哪些人可以不需要学GNU-ld链接脚本? 1)所有事务都交给编译器自动完成的,只需要写代码的 2)只使用商业性编译器 3)只使用avr,并且不需要实现复杂功能的2. 哪些人可以考虑去学GNU-ld链接脚本? 1)希望比makefile更进一步控制程.........【阅读全文】
发布时间:2013-01-18 09:11:16
?GENERAL-------Use real tabs that equal 4 spaces.Use typically trailing braces everywhere (if, else, functions, structures, typedefs, class definitions, etc.)if ( x ) {}The else statement starts on the same line as the last closing brace..........【阅读全文】
发布时间:2013-01-06 16:10:31
想成为嵌入式程序员应知道的0x10个基本问题 预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是......【阅读全文】
发布时间:2013-01-06 16:09:39
1. 无符号整型与有符号整型相加解答: 以下代码在vc6.0中执行结果均为-14,但是用cout输出就只是t3是-14了。因为无符号整数与有符号整数相加,有符号数被强制转换为无符号整数,导致变成很大的数了。void main(){ unsigned int t1=6; int t2=-20; int t3=t1+t2; unsigned int t4=t1+t2; pr......【阅读全文】
发布时间:2013-01-06 16:05:56
先看一个经典的面试题:#include <stdio.h>#define f(a,b) a##b#define g(a) #a#define h(a) g(a) int main(){ printf("%s\n", h(f(1,2))); printf("%s\n", g(f(1,2))); return 0;}输出是:12f(1,2)原因就是宏替换的原则问题:当一个宏参数被放进宏体时,通常(注意,有例外)这个宏参数会首先被全部展开。当展开后的宏参数被放进宏体时,预处理器对新展开的宏体进行第二次扫描,并继续展开。例如:#define P......【阅读全文】