header.h头文件引用

按着 C 头文件 | 菜鸟教程 的demo操作我发现报错了,其实是demo写的有问题,报下面这种错误

 PS F:\work\c> cd "f:\work\c\" ; if ($?) { gcc test.c -o test } ; if ($?) { .\test }
f:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\admin\AppData\Local\Temp\ccZyDBQ3.o:test.c:(.text+0xf): undefined reference to `test'collect2.exe: error: ld returned 1 exit status

来我给你一个demo

header.h

int a(int b){
    return b*2;
}

最关心的还是header.h放哪里是不是,看下图

然后是test.c

#include <stdio.h>
#include <windows.h>
#include "header.h"

int main (void)
{
   printf("%d",a(4));
   // puts(test());
}

输出结果

 所有是官方demo有问题,了解?

博主想,正常的demo应该是下面

test.c

#include <stdio.h>
#include <windows.h>
#include "header.h"

int main (void)
{
   char *i;
   i=test();
   puts(i);
}

 header.h  


char *test(){
    return "d2322";
}

-------上面是runoob网站上教程报错后博主自己想的,不一定对,但是能跑博主也刚开始学!

下面贴下 防止重复引入.h文件和别名命名的demo(官方也只是提一下,索性就博主自己百度了)

test.c

#include <stdio.h>
#include <windows.h>
#ifndef HEADER_H    //防止多次引入header.h
   #define HEADER_H  "header.h" //以宏形式定义header.h
   #include HEADER_H
#endif

int main (void)
{
   printf("%d",a(4));
}

 header.c

int a(int b){
    return b*2;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪狼之夜

打个赏,让博主知道博文没白写

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值