本来以为#pragma once / #ifndef + extern可以解决头文件及全局变量的那些问题,今天又发现编译顺序还会有所影响,网上找了些说法看了下,仍然感觉有点模糊,需要写些测试的东西才能总结一下。
另外,还发现#pragma once与#ifndef的些微区别,好像是在编译时,ifndef修饰的可能会被反复多次的打开,而pragma once则不会,但编译器的支持上ifndef则是标准支持的,而pragma once则是非标准的,虽然据说vc,gcc均是支持的
另外,还发现#pragma once与#ifndef的些微区别,好像是在编译时,ifndef修饰的可能会被反复多次的打开,而pragma once则不会,但编译器的支持上ifndef则是标准支持的,而pragma once则是非标准的,虽然据说vc,gcc均是支持的
本文探讨了#pragma once与#ifndef在头文件包含中的作用及其细微差别。分析了这两种预处理指令如何避免头文件重复包含的问题,并讨论了它们在不同编译器支持情况下的表现。

2107

被折叠的 条评论
为什么被折叠?



