c语言自定义头文件问题
在一个头文件money.h中定义了
typedef double Money;
然后在另一个头文件bet.h中声明一个函数bet
Money bet(Money w);
用gcc编译的时候却总是报bet.h的错误,将在bet.h中将Money改成double后一切正常,感觉应该是Money的使用错误,应该怎么改才能正常?(需要使用Money而不是double)
[解决办法]
怎么可能呢?是不是在bet.h中#include "money.h " 而 bet.h又没有用Include Guards,下面的例子怎么可能会报那种错呢?即使多次#include "bet.h "也不会呀:
mymtom@fc6:src/csdn/c/money$ ls
bet.c bet.h money.h
mymtom@fc6:src/csdn/c/money$ cat bet.c
#include "bet.h "
#include "bet.h "
#include "money.h "
#include "bet.h "
Money bet(Money w)
{
return (w / 3.0 + 100);
}
mymtom@fc6:src/csdn/c/money$ cat bet.h
/*
* bet.h
*/
#ifndef BET_H
#define BET_H
#include "money.h "
Money bet(Money w);
#endif /* BET_H */
mymtom@fc6:src/csdn/c/money$ cat money.h
/*
* money.h
*/
#ifndef MONEY_H
#define MONEY_H
typedef double Money;
#endif /* MONEY_H */
mymtom@fc6:src/csdn/c/money$ make bet.o
cc -c -o bet.o bet.c
mymtom@fc6:src/csdn/c/money$ ls
bet.c bet.h bet.o money.h
mymtom@fc6:src/csdn/c/money$