您的位置:首页 > 编程语言 > C语言/C++

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

2017-10-25 09:54 218 查看
最近看创龙的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关键字,结果发现编译没有任何问题,运行也可以,所以,总结就是,没必要加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: