完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教大家一个问题:我在一个.h文件里定义了一个共同体:
static union { float Float; u8 U8[4]; }Float_U8; 然后在其他.c文件里调用,为什么这里的static 必须加,如果不加就会报错,只要是包含了这个.h的c文件都会报重复定义的错误。 |
|
相关推荐
4个回答
|
|
你应该去了解一下static存储类型的作用域,作用域在单个编译单元。
|
|
|
|
加了static,变量的作用域为当前.C文件,相当于在每个.C文件中各定义了一个变量,互不影响。
如果想在.h文件中定义变量可以用条件编译 #ifdefine __main_c #define GLOBA #else #define GLOBA extern #endif GLOBA int a; 这样在main.c的文件开头加一句宏定义 #define __main_c 这样a在main.c中为定义int a; 在别的文件中就为外部声明extern int a; |
|
|
|
你要知道.h中的内容相当于直接替换到了你写include "xx.h"的地方
|
|
|
|
static定义的变量仅仅在定义的C文件有效,外部的文件不可访问
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4464 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
341浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
338浏览 2评论
366浏览 2评论
357浏览 2评论
403浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:12 , Processed in 0.928467 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号