free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場
我要提問

c語言,想通過一個(gè)可變變量來區(qū)分兩個(gè)宏定義?



#ifndef x
#define x
...
#endif
這個(gè)是變量 不是可變的,在程序編譯的時(shí)候已經(jīng)定好了,我想在程序運(yùn)行的時(shí)候 調(diào)用兩組不同的 宏定義
意思如下
uint8_t mm = 0;? ? //mm??其他地方改變值
.......
if(mm )
{
#define a??b
}
else
{
#define a??c
}
提問者:likge02641 地點(diǎn):- 瀏覽次數(shù):7354 提問時(shí)間:03-09 02:00
我有更好的答案
提 交
11條回答
andyfly7 03-17 11:23
頂頂,沒人回答么
光攝微針 03-15 21:22
宏定義是在程序預(yù)編譯階段要用的,而程序已經(jīng)在執(zhí)行了,這時(shí)怎么還能用這種方法
XWM4612 03-13 16:15
試試就知道了。好像可以的,我在哪里見過類似的結(jié)構(gòu)
成長的小師弟 03-18 21:36
好像是不行的,宏定義是預(yù)處理語句,在編譯程序之前就被編譯器處理了,你可以用賦值語句呀
xj1223726587 03-12 15:14
我記得是可以的,但這么放在函數(shù)里有個(gè)缺陷,你只能在執(zhí)行這個(gè)函數(shù)后引用這個(gè)宏定義,在這之前就不可以了
nuwejfwer 03-13 02:38
試了下,行不通呀,程序亂的了。
安理說也是行不通的,宏定義那個(gè)不是變量,在if函數(shù)里面改變宏應(yīng)該也是無法改變的。
我現(xiàn)在要求是因?yàn)閮蓚€(gè)mcu外接功能都是一樣的,就是IO口的接的地方不同。通過一個(gè)IO口的高低來使軟件的IO口切換。因?yàn)橛兴氖畞韨€(gè)io口都不一樣的,所以想用類似于宏這樣的方便一下子改動(dòng),還有什么其他方法么
xwgc888 03-18 03:38
有宏定義判斷語句
huzp_123 03-17 03:24
#if??#else??這個(gè)沒用過嗎?
60user98 03-14 20:15
if(mm )
{
//#define a??b
直接調(diào)用B模塊;
}
else
{
//#define a??c
直接調(diào)用C模塊;
}
kasonandy 03-13 20:03
樓上,這樣太麻煩了,我不是一個(gè)IO口,是有四十個(gè)io,調(diào)用的地方隨處都有。要是都這樣的感覺好麻煩。所以才會(huì)想起他方法
tracy87 03-14 05:39


看看Linux是怎么做編譯配置的。編譯時(shí)和運(yùn)行時(shí)要先搞清楚。
感覺你的問題應(yīng)該用查表來解決,不知道是不是想這樣:
const your_type io_table[] = {a,b,c...};
...
output = io_table[mm];
撰寫答案
提 交
1 / 3
1 / 3