level 8
#include<stdio.h>
#define SDD
#include"a.h"
int main() { printf("%d", f()); }
2017年10月11日 05点10分
2
level 8
#ifndef A_H
#define A_H
int f();
#include"a.cpp"
#endif
2017年10月11日 05点10分
3
level 8
#ifdef SDD
int f (){ return 1; }
#else
int f() { return 2; }
#endif
2017年10月11日 05点10分
4
level 8
追问一个
改m.cpp为
#include<stdio.h>
#include"b.cpp"
#define SDD
#include "a.h"
extern void f2();
int main() {
f2();
printf("%d", fff); }
改a.cpp为
#ifdef SDD
#define fff (1)
#else
#define fff (2)
#endif
加b.cpp
#include"a.h"
#include <stdio.h>
void f2() { printf("%d\n", fff); }
2017年10月11日 10点10分
6
level 13
你把项目关掉就正常,实际上如果你把项目打开了,就不要用#include "xxx.c"这样的写法,因为会重复编译同一个函数,导致函数重叠,失败就是这样产生的,项目用于管理多文件编译,你要是打开c4的多文件编译,也会出错好吗
2017年10月11日 15点10分
9
谢谢。明白了。
2017年10月11日 23点10分
@飞舞云尖 凡是有歧义的编程方式看来不能用项目方式。
2017年10月12日 00点10分