OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5516|回复: 10

关于#define请教大神

[复制链接]

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
发表于 2015-10-6 22:04:49 | 显示全部楼层 |阅读模式
5金钱
小弟最近最#define的理解不是很透彻,恳请大神指教
例如:
问题1:define X  /*这里是定义了X,那定义X的值是多少呢?小弟认为这里X=1,是这样的吗???*/

问题2: #define X 100 /*请问大神:这里和使用#define X(后面不写参数)是一个效果吗?*/
          #ifdefine X
           printf();
          #endif
      

最佳答案

查看完整内容[请看2#楼]

应该可以吧,你试试就知道呀,但是一般是#define X就行了;而如果要#define X 5,条件编译可以写成#if X=5 .... #endif
电子爱好者
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-4-3
在线时间
0 小时
发表于 2015-10-6 22:04:50 | 显示全部楼层
应该可以吧,你试试就知道呀,但是一般是#define X就行了;而如果要#define X 5,条件编译可以写成#if X=5 .... #endif
看不开,那就闭上眼;
回复

使用道具 举报

70

主题

6756

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12983
金钱
12983
注册时间
2012-11-26
在线时间
3787 小时
发表于 2015-10-6 22:15:35 | 显示全部楼层
基础C语言  自己翻书吧
学无止境
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-10-6 23:20:51 | 显示全部楼层
请问大神:如果我在前面完成了对如下这个结构体的初始化
struct
{
   x;
   Y;
  Z;}
请问这算不算已经定义了X(没有使用#define X方式)
如果我在下面使用
#ifdef
printf()~~~
#endif
可以打印出数据吗???恳请大神指教
电子爱好者
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2015-10-7 00:21:07 | 显示全部楼层
x不是X

另外,使用单字母定义的,拉出去炮决
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7952
金钱
7952
注册时间
2014-8-13
在线时间
1590 小时
发表于 2015-10-7 12:58:45 | 显示全部楼层
回复【4楼】aozima:
---------------------------------
炮决有点凶残。某些结构体的成员也有单字母的,比如point
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3708
金钱
3708
注册时间
2011-5-23
在线时间
2010 小时
发表于 2015-10-7 13:23:35 | 显示全部楼层
回复【5楼】mack13013:
---------------------------------
我说的是  define X
而不是结构体或局部变量里面的单字母
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-10-8 08:46:27 | 显示全部楼层
大家不需要纠结于X,那不过是我简写的代号而已
还是想请教大神解释我心中的疑惑,感谢~
电子爱好者
回复

使用道具 举报

2

主题

19

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-4-3
在线时间
0 小时
发表于 2015-10-8 21:31:47 | 显示全部楼层
#define X只是定义一个X,它应该是没有值的,这种定义方式一般是用在条件编译,比如你定义.h文件:1.首先#ifndef X,#define X。就是先判断有没有定义X,如果有定义过就不编译下面的代码,这样可以防止代码重复包含。
看不开,那就闭上眼;
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-10-9 11:40:24 | 显示全部楼层
回复【8楼】攻城狮:
---------------------------------
请教大神:
1>我先定义#define X 5
2>那此时我使用#ifdef X
                     printf()
                     #endif
请问大神:这时候我能打印数据吗???
电子爱好者
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-10-9 11:49:19 | 显示全部楼层
回复【10楼】攻城狮:
---------------------------------
感谢大神~
电子爱好者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表