C语言头文件函数声明是否加extern

最近看创龙的DSP程序,忽然遇到一个C语言的语法问题,感觉非常纠结,归根结底还是以前C语言学的不扎实,所以才会卡在这种小的语法问题上。我的问题是这样的,在看UART_EDMA例程的时候,main函数调用了UARTStdioInit();函数,UARTStdioInit();uartStdio.c文件里,然后UARTStdioInit();函数里又调用了UARTConsoleInit();函数,该函数在UARTConsole.c文件里。

 

然后,在UARTConsoleInit();函数里,又调用了

PSCModuleControl(SOC_PSC_1_REGS,13, 0, PSC_MDCTL_NEXT_ENABLE);函数,问题来了。我在查看声明PSCModuleControl函数的头文件psc.h的时候,看到了PSCModuleControl函数声明没有加extern关键字,而另外又有两个函数声明,却是加了extern关键字的。如下图所示:

 

回头再看main函数,发现有些函数也没加extern关键字。比如

(main函数)

(edma.h文件)

而有些却加了,比如:

(main函数)

(uartStdio.h文件)

那么,到底什么时候加extern关键字,什么时候不加?我想了很久,最后暂时得出这样的解释,加不加无所谓!

 

主函数中,这两个函数,

一个是加了extern,一个没加,我试了去掉加了extern的函数声明的extern关键字,结果发现编译没有任何问题,运行也可以,所以,总结就是,没必要加。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值