<pre>f6 编译, f5调试, ctrl+f5直接运行, shift+f5或者f6结束调试 ctrl+break编译时结束编译 f9加减断点 f10单步执行 f11跳进方法里面 shift+f11 跳出方法 <br/> <br/>一般用到的就这些吧</pre>
说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。  1、  先来看一下,一个简单的应用,就是在头文件中使用,#ifndef #define .....................#endif 这三条指令。头件的中的#ifndef(if not define),这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。<br>还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:<br>#ifndef#define<br>#endif<br>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:delay.h<br>#ifndef _DELAY_H_#define _DELAY_H_<br>#endif<br>这一个在一般的小型程序中经常用到,在做单片机的的程序时,经常把一些可以独立的模块写成头文件,方便程序的阅读和移植。<br>我看了老长时间的书,终于明白<br>为什么是:#ifndef _DELAY_H_#define _DELAY_H_<br>而不是: #ifndef DELAY.H #define DELAY.H<br>因为,后者,定义一个名称,是用于一个程序中或者头文件中的,名称定义<br>前者,是关于头文件包含的,不是名称定义的。用下划线代替“.”,是没有办法的办法,只有这样才能防止混乱。<br>前者的意思是,如果没有包含了这个头文件,就包含它。<br>后者的意思是,如果没有定义这个名称,就定义它。<br>其实就是换一种写法 以区分两种意思。<br>两者是不一样的意思。<br>摘自那本两个老外写的经典权威《C程序设计语言(第二版)》 第2章2.1变量名该节<br>“……名字是由字母和数字组成的序列,但其第一个字符必须是字母。下划线被看做是字母……由于库例程的名字通常以下划线开头,因此变量名不要以下划线开头……”<br>首先是楼主那几个函数是系统文件自代函数,所以一般系统变量或函数名前会