1. 简介
C语言是一门语法结构简单的编译型高级语言, 由于其语法精炼结构简单但 比较灵活。初学者可以在较短的时间掌握
其基本编程技能,但要彻底理解C语言底层实现的原理以及灵活使用C语言级技巧,并不是一件特别容易的事情。
比如,你知道 char *array[] 和 char (*array)[]的区别吗?
struct {
char chr;
int a;
}ss;
sizeof(ss)为什么不是5? 编译器到底做了什么?
char * argv[] 和 char **argv有什么本质区别?
__cdecl和__stdcall, __fastcall的作用是什么? 编译器又是怎么实现它们的?
0["str_test"] 是什么意思?
C语言的main函数到底是谁调用的? C语言怎么实现没有main函数也能运行?
C语言程序的内存布局是什么? C程序由哪些部分组成,C语言是怎么被编译成可执行程序的(.exe, a.out) ?
堆栈(Stack, Heap)是什么结构?有什么用途? C语言为什么必须使用Stack?怎么设置堆栈的大小呢?
为什么地址 0x0不能使用? 一个C语言程序可以使用哪些内存地址?
C语言有哪些版本? 什么是ANSI C? C89和C99有什么区别?
C语言register变量和volatile变量有什么含义? 怎么在C语言中内嵌汇编语言? C语言如何与汇编语言混合编程?
本文试图从C语言的实现原理入手,``去分析C语言的本质与C语言专家级编程技巧。
2. 变量的定义
任何一个编程语