变量可否定义在头文件(.h)中

不管是常量还是外部全局变量定义在源文件中的,那为什么不把它们定义在头文件中呢?这是我在学习oc时比较纠结的问题,当我把一个常量定义在头文件中时,这时候报的"重复定义的变量"的错误给了我答案:

因为外部全局变量肯定必须是整个工程唯一的,import的作用是把头文件中的内容进行拷贝,若有多个文件import了一个定义了外部全局变量的头文件,那在整个工程中就会出现多个同名同类型的外部全局变量,原来如此啊,豁然开朗。

但是把静态变量定义在头文件中,多个文件import这个头文件不会报“重复定义变量”的问题,这是因为静态变量是内部全局,只在一个文件内有效。但是也不能因为没有错误就把认为可以把静态变量定义在头文件中,这种做法是不推荐的,既然定义了一个静态变量那肯定是要在方法内使用它的,只有在源文件中才会有方法的实现,所以静态变量也要定义在源文件中

results matching ""

    No results matching ""