æé½æ¾å¨ä¸èµ·äºï¼try.cæ¯ä¸»æ§è¡æ件ï¼sgetsçæºæ件å头
æ件é½æ¾å¨ä¸èµ·äºï¼è¿ä¸ªå¨devä¸æ¯å¯ä»¥çï¼ä¸ç¥évséé¢ä¸ºä»ä¹ä¸å¯ä»¥
å¯æ¯çä½ ä¹ååçæªå¾ 并没æsgets.cçç¼è¯è¿ç¨
发了鸭
追答sgets函数的函数体你写在哪了,为什么不跟着声明写?
追问那你看看我上面的追问,项目不是一般都这样吗,怎么才能实现我在dev里面的正常运行呢?😶
追答问题在于,你把sgets函数写在了哪里,include指令只是把两个文件合并成一个而并不是逐个编译,比如:(第一张图)
我是害怕你写成了这样:(第二张图)
后果是sgets.h里只有一个sgets的声明而没有内容,只有file1里才有“真正的sgets”
而file2里只有一个空空的声明。
PS:一般项目是这么写的:
头文件1:
(利用宏定义和条件编译确保只编译一次)
函数声明部分
包含头文件2
头文件2:
(利用宏定义和条件编译确保只编译一次)
包含头文件1
函数体部分
.c或.cpp文件:
包含头文件1
使用函数
比如你可以瞅瞅stdio库就明白了