1.#include 同一个文件,能在不同的.cpp中包含吗?2.我在头文件*.h中定义一个外部变量:extern double aa;然后再在*.cpp赋值:aa=2.03;
可是在编译的时候,出现错误: error C2144: syntax error : missing ';' before type 'double'。这是怎么回事呢?有哪些可能会导致这种问题呢?按照规定应该这样定义没错阿?3.#define后面可以是一段程序吗?比如:
#ifndef mat_cpp
#define mat_cpp{.....}
#endif4.接上.如果可以,这样有什么用呢?可以用mat_cpp表示那段程序,在别的函数中使用?那与直接调用mat_cpp()函数,或者#include "mat_cpp.cpp"有什么不同呢?

解决方案 »

  1.   

    1.#include 同一个文件,能在不同的.cpp中包含吗?
    答:可以,需要在.h文件中加宏控制
    //myClass.h
    #ifndef _MY_CLASS_H_
    #define _MY_CLASS_H_
    //...
    //你的头文件定义
    //...
    #endif//_MY_CLASS_H_
    2.entern double aa;这句加到*.cpp文件中试试
    3.#define只是一个宏定义,可以是任何的字符,编译器在真正编译的时候自己会替换为实际代码
    比如
    #define add(a,b) (a+b)
    在你程序中使用了add(a,b)的宏,
    num = add(1,2);
    编译器会转换为num = (1+2);
      

  2.   

    1,包含后注意防止重复包含
    2,extern放到cpp中
    3,宏是替换
      

  3.   

    如楼上所说,在头文件里加预定义条件判断,这样的话你在多个CPP中包函同一个.h,预定义条件判断就会忽略第二次#include//myClass.h          
    #ifndef _MY_CLASS_H_
    #define _MY_CLASS_H_
    //...
    //你的头文件定义                     可以将整个.h内容都包函在条件判断这里,这样就不会有冲突了
    //...
    #endif//_MY_CLASS_H_