Xcode iOS/Objective-C 프로젝트에서 별도의 C 헤더 및 구현 파일을 사용하려고합니다.
은 내가 main.m에서 구현하는 방법을 사용하고 싶지만 나는 이러한 오류를 얻을 : 나는 main.m에 user.h 포함Xcode iOS 프로젝트에서 C 헤더 및 구현 파일 사용
참고 한
을 대상 회원 HelloWorld 용 user.c에서 선택됩니다. 이 선택을 취소하면 오류가 사라집니다. 나는 응용 프로그램을 실행하려고 할 때, 나는 컴파일 시간에 이러한 오류를 얻을 :
Full size here
내가 컴파일과 잘 실행 main.m의 구조체 및 방법을 구현 . 하지만 왜 내가이 특별한 코드를 별도의 파일로 사용할 수 없는지 모르겠다.
소스 코드 :
user.h
#ifndef HelloWorld_user_h
#define HelloWorld_user_h
typedef struct {
char *name;
int age;
char sex;
} User; //sizeof(User) = 16 bytes
void CreateAndDisplay(User *usr, char *name, int age, char sex);
#endif
user.c
#include <stdio.h>
#include <stdlib.h>
void CreateAndDisplay(User *usr, char *name, int age, char sex) {
usr->name = name;
usr->age = age;
usr->sex = sex;
printf("User address -> value:\n");
printf("Name:\t%u\t->\t%s\n", (uint)usr, *&usr->name);
printf("Age:\t%u\t->\t%i\n", (uint)&usr->age, *&usr->age);
printf("Sex:\t%u\t->\t%c\n\n", (uint)&usr->sex, *&usr->sex);
printf("User has a size of %li bytes in memory", sizeof(*usr));
}
main.m
#import <UIKit/UIKit.h>
#import "HelloWorldAppDelegate.h"
#include <stdio.h>
#include <stdlib.h>
#include "user.h"
int main(int argc, char *argv[])
{
User user1;
CreateAndDisplay(&user1, "John Doe", 24, 'm');
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([HelloWorldAppDelegate class]));
}
}
이 (http://puu.sh/44eMG.png) 당신은'#INCLUDE을 시도 할 수도 " user.c "에있는"user.h ". 'user.c'의'#include '파일 목록을보고 있습니다. 거기에는'#include '이 있으므로 컴파일러는'User'가 무엇인지 전혀 알지 못합니다. –
WhozCraig
@QuantumHive 귀하의 스크린 샷을 직접 귀하의 게시물로 옮겼습니다. 나중에 코드 블록 안에 질문에 코드를 넣으십시오. 질문을 독자적으로 작성하고 다른 사람들이 직접 코드를 컴파일, 테스트 및 편집하는 것이 더 쉽습니다. 감사! –
죄송합니다, 지금 코드를 추가하겠습니다. – QuantumHive