gpt4 book ai didi

ios - 在 Xcode iOS 项目中使用 C 头文件和实现文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:18 24 4
gpt4 key购买 nike

我正在尝试在 Xcode iOS/Objective-C 项目中使用单独的 C 头文件和实现文件。
我想使用我在 main.m 中实现的方法,但出现以下错误:

enter image description here Full size here

我在 main.m 中包含了 user.h

请注意,在 user.c 中为 HelloWorld 选择了 Target Membership。当我取消选择它时,错误就消失了。但是当我尝试运行该应用程序时,我在编译时遇到了这些错误: enter image description here
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

用户.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));
}

ma​​in.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]));
}
}

最佳答案

这些错误是因为在 user.c 中引用了两种类型尚未在其导入的 header 中声明:User (在 user.h 中定义)和 uint (在 <sys/types.h> 中定义)。要解决这些错误,请在 user.c 内您应该添加以下内容:

#include "user.h"
#include <sys/types.h>

关于ios - 在 Xcode iOS 项目中使用 C 头文件和实现文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18293531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com