打印

一个简单的问题

[复制链接]
1860|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
甄蔡组合|  楼主 | 2007-4-2 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2007-4-2 10:08 | 只看该作者

随便说说

  典型的C预处理...

使用特权

评论回复
板凳
awey| | 2007-4-2 10:11 | 只看该作者

给编译器看的,告诉编译器编译哪个程序段

使用特权

评论回复
地板
xiaoyu9632| | 2007-4-2 17:07 | 只看该作者

意思

就是如果定义了某些东西就不要再一次的重复定义

使用特权

评论回复
5
sodwell| | 2007-4-2 22:45 | 只看该作者

:)

楼上的错了,楼上的楼上对头!

使用特权

评论回复
6
平常人| | 2007-4-2 22:47 | 只看该作者

学名叫“条件编译”,即根据不同的条件编译不同的代码

所以3楼说的正确!

使用特权

评论回复
7
甄蔡组合|  楼主 | 2007-4-3 11:22 | 只看该作者

小弟愚钝 能否举个例子

谢谢各位

使用特权

评论回复
8
陈双君| | 2007-4-3 11:38 | 只看该作者

3楼说的是正确的.

3楼说的是正确的.

使用特权

评论回复
9
ayb_ice| | 2007-4-3 11:40 | 只看该作者

随便说说

  这都是标准C的一部分,应该懂的...

使用特权

评论回复
10
popmu| | 2007-4-3 12:49 | 只看该作者

看C语言的书啊

使用特权

评论回复
11
ayb_ice| | 2007-4-3 15:02 | 只看该作者

KEIL HELP 里东东

#define
The #define directive defines a preprocessor macro.

#define macro-name « (arg« , arg ... ») » replacement-text

You may use #define to create function-like macros with or without arguments. Macros are syntactically similar to function calls. When a defined macro is encountered in the source file, the macro-name and any arguments are replaced by the replacement-text. For example:

#define my_macro(a,b,c) a+b+c

int func (int x, int y, int z)
{
return(my_macro(x,y,z));
}

appears as follows after macro expansion:

int func (int x, int y, int z)
{
return(x+y+z);
}

Refer to Macros for a complete description of how to define and use macros in your C programs.

Copyright (c) Keil Software, Inc. and Keil Elektronik GmbH. All rights reserved.

使用特权

评论回复
12
甄蔡组合|  楼主 | 2007-4-3 20:16 | 只看该作者

有中文没

使用特权

评论回复
13
lishuanghua| | 2007-4-3 21:30 | 只看该作者

举个例子:

如果有一段代码是你想在测试的时候用的,而在正式的产品要用另一段代码:
测试时:
#define  TEST
#if defined TEST
     //测试的代码
#else
    //正式代码
#endif
在这里,编译器只会编译 测试的代码而忽略掉正式代码

正式产品:
//#define  TEST
#if defined TEST
     //测试的代码
#else
    //正式代码
#endif
在这里,编译器只会编译 正式代码而忽略测试的代码

使用特权

评论回复
14
yuanjian79| | 2007-4-5 01:09 | 只看该作者

#ifdef 是条件编译指令。

#ifdef 是条件编译指令。预编译就过滤掉不符合条件的代码。
if是条件判断关键字,负责程序流程控制。最终生成目标代码(跳转指令)。
#ifdef常见用法有
#ifdef _DEBUG
  printf("output debug information ");
#endif /*_DEBUG*/
对应的还有#ifndef,
常见用法防止头文件重包含
/*头文件开始处*/
#ifndef _FILE_H
....
#endif /*_FILE_H*/

使用特权

评论回复
15
甄蔡组合|  楼主 | 2007-4-9 11:16 | 只看该作者

谢谢各位

感谢13 14楼的高人

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

198

帖子

0

粉丝