#define __dsPIC30F6014__
// #include<p30f6014>
#include <uart.h>
#include <adc12.h>
#include <p30F6014.h>
第一句什么意思?是吧__dsPIC30F6014__定义为空么?也就是出现__dsPIC30F6014__的地方都去掉?
#ifndef _STDIO_H_
#define _STDIO_H_
这几句又是什么意思?_STDIO_H_是指stdio.h么?为什么要这样写?作用难道是出现stdio.h的地方都去掉?可不可以把_STDIO_H_用stdio.h替代掉?
调试的时候有用,比如
#ifndef __dsPIC30F6014__
test = 1;
#else
test = 2;
#endif
第二个问题其实跟第一个差不多,就是一个哨兵,在编译的时候其作用,预防重复定义。
[此贴子已经被作者于2008-8-17 10:27:02编辑过]
#ifdef WINDOWS
#define MYTYPE long
#else
#define MYTYPE float
#endif
如果在Windows上编译程序,则可以在程序的开始加上
#define WINDOWS
这样则编译下面的命令行:
#define MYTYPE long
如果在这组条件编译命令之前曾出现以下命令行:
#define WINDOWS 0
则预编译后程序中的MYTYPE都用float代替。
以上是我在网上查到的,但有些不明白,为什么#define WINDOWS 0的时候会执行后面一段?也就是认为WINDOWS没有被定义?#define WINDOWS 和#define WINDOWS 0有什么区别?后面加个0和不加有什么含义?
[此贴子已经被作者于2008-8-17 10:36:27编辑过]
实际写了一小段测试了一下,#define WINDOWS 0执行的是上面那段程序。
也就是说,只要有#define WINDOWS **,不管**是什么,或者是空的,也表示已经定义了?
高手再来解答一下啊
[em04][em04]欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |