重写"复杂"的定义

时间:2014-05-09 15:06:53

标签: c xcode

我有一个家庭作业,要写一个用“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);
}

编译器抛出错误,不知道我指的是哪个复杂

2 个答案:

答案 0 :(得分:1)

Get the XCode Command Line Tools并使用clang在命令行上将代码编译为直接C。

答案 1 :(得分:0)

您应该能够使用#undef complex来取消定义复合体的Objective C实现,然后取消#define您自己的实现。