gpt4 book ai didi

c - c中的宏定义

转载 作者:行者123 更新时间:2023-11-30 17:34:16 25 4
gpt4 key购买 nike

我被要求实现 malloc 和 free。我在我的 malloc.c 文件中实现了这些,其中包括 malloc.h 文件,并且在 malloc.h 文件中我有这些宏

 #define malloc( x ) mymalloc( x, __FILE__ , __LINE__ )
#define free( x ) myfree( x, __FILE__ , __LINE__ )
#define calloc( x,y ) mycalloc( x, y, __FILE__, __LINE__ )

每当我在主函数中使用 malloc(10) 或其他内容时,它都会显示对 mymalloc 的 undefined reference

最佳答案

请注意,像这样的行

p = malloc(10);

由 C 预处理器扩展为

p = mymalloc(10, "this-file-name.c", /* current line number */);

这行代码无法编译,因为没有编译器可见的 mymalloc() 声明。您需要将以下行添加到 mymalloc.h

void *mymalloc(int, const char *, int);
void myfree(void *, cont char *, int);
void *mycalloc(int, int, const char *, int);

关于c - c中的宏定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437047/

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