宏定义带分号导致错误, dataIO= 0xff; 等效于 P0; = 0xff; P0后有分号,所以错误了。 |
mirvv 发表于 2024-6-26 08:53 不绝对的。 如果: #define set_clk() SPI_CLK=1; 这样也可以,只是在调用时,不要再加“;”,直接set_clk()就没问题。 好死不死,楼主的宏定义是针对IO口的,所以编译器就认错了。 |
感谢以上:蓝蓝小星星, xiaobendan001 ,zhuls ,szqinyi ,ZSJM,MOVEORDIE ,123156fsadf,ID:890708 ,cy009以及所有坛友赐教,按大家的教法,去掉“;”后,问题已解决了。 |
Mxd51hei 发表于 2024-6-26 00:31 #define dataIO P0; 改成#define dataIO P0 P0;=0xff你看这句有没有问题 |
#define 宏定义,行尾不带分号 |
Mxd51hei 发表于 2024-6-25 22:49 C:\Users\W\Desktop\截图_20240626085444.png |
Mxd51hei 发表于 2024-6-26 00:31 宏定义后面不能加分号,就是这个(;)你还是好好看看C语言在写代码吧 |
#define dataIO P0; 这句最后面的封号删掉 |
宏定义不对吧? |
#define dataIO P0 后面不能带" ; " |
P0后面去掉; #define dataIO P0 |
Mxd51hei 发表于 2024-6-26 00:31 晕 ![]() |
Mxd51hei 发表于 2024-6-26 00:31 define行的最后不要用; |
#define dataIO P0; “;” 去掉 |
还是不错在哪和怎么改哦,我反复看定义格式,没有发现格式错误呀 |
#define dataIO P0; #define 是宏定义,意思是替换,把“目标”用“源”来替代,你的语句中,dataIO是“源”,“P0;”是目标, 所以,你现在知道如何改正了吧? |
请赐教该怎么改呢? |
的确是这里的问题,请指教该怎么改呢? |
你写的是dataIO= 0xff; //提示这里附近有错 编译器看到的是P0;= 0xff; //提示这里附近有错 |