我有一个家庭作业,要写一个用“typedef
”
根据赋值,类型名称必须为小写c的“复杂”,并且必须位于complex.h文件中
但是,我正在xcode
开发此作业,此类型已由目标c定义。
如何在没有重命名任何文件和对象类型的情况下使xcode
支持我的类型和我的文件,而不是重命名任何文件和对象类型?
complex.h
#ifndef complex_complex_h
#define complex_complex_h
typedef struct complex complex;
struct complex{
double real;
double imaginary;
};
complex A;
complex B;
complex C;
complex D;
complex E;
complex F;
void read_comp (char * complexName, double real, double imaginary);
void print_comp (char * complexName);
#endif
complex.c里
#include <stdio.h>
#include <string.h>
#include "complex.h"
complex get_complex_from_name(char * complexName);
complex notFound;
complex get_complex_from_name(char * complexName){
if(strcmp(complexName,"A")==0 ){
return A;
}
if(strcmp(complexName, "B")==0){
return B;
}
if(strcmp(complexName, "C")==0){
return C;
}
if(strcmp(complexName, "D")==0){
return D;
}
if(strcmp(complexName, "E")==0){
return E;
}
if(strcmp(complexName, "F")==0){
return F;
}
return notFound;
}
void read_comp(char *complexName, double real, double imaginary){
struct complex comp = get_complex_from_name(complexName);
comp.real = real;
comp.imaginary = imaginary;
}
void print_comp(char *complexName){
struct complex comp = get_complex_from_name(complexName);
printf("%s=%f+(%f)i",complexName,comp.real, comp.imaginary);
}
编译器抛出错误,不知道我指的是哪个复杂
答案 0 :(得分:1)
Get the XCode Command Line Tools并使用clang
在命令行上将代码编译为直接C。
答案 1 :(得分:0)
您应该能够使用#undef complex
来取消定义复合体的Objective C实现,然后取消#define
您自己的实现。