includefile(c语言,各位大佬问一下,有没有什么办法使得include函数找不到对应文件名的时候,输出null呢
发布时间: 2023-07-18

本文目录

c语言,各位大佬问一下,有没有什么办法使得include函数找不到对应文件名的时候,输出null呢

我会在后面附上一种实现这种功能的办法,但是我想说这样做毫无意义,即使你可以通过一些手段编译成功,甚至达到输出NULL的目的,但是你的程序却很可能无法运行,或者运行时出错。

C语言作为一种静态编译型语言,在编译阶段或者预编译阶段发现错误要比运行时发现错误更有意义,所以现在的编译器才会越做越智能,帮你检查出程序潜在的问题,提示你修改,包括找不到include指定的文件,所有的这一切的目的只有一个,就是提早发现问题,使运行时的程序更加健壮、高效。

那么如何强行实现这种功能呢,最直接的方法当然是修改编译器,这对于大部分商业编译器来说是不可行的,因为你没有源码,但是像gcc这样的开源软件,还是可以尝试一下,不过难度较大,会改的人绝对不会做这种无意义的事。

我要说的另一种简单方式是自己写一个检测工具,功能很简单,就是分析每条include指令,然后检查文件是否存在,对于不存在的问题,将该条指令替换成一条输出null的语句,比如:

#include “

file1.h

” // 存在

#include “

file2.h

” // 不存在

// 文件内存

运行检测工具后:

#include “file1.h” // 存在

print(“null in file %s at line %d“,__FILE__,__LINE__);

// 文件内容

然后在编译前运行这个工具,对于没有使用到的include文件,该方法将达到输出null的目的,对于文件中使用到了include文件中的内容,比如变量、宏或者函数等,都会提示编译错误。

下面是在VC2017中设置自定义工具的办法,如下图:

打开项目属性-》自定义生成步骤-》配置相关参数。

这个Cannot open include file: ’stdafx.h’: No such file or directory错误怎么改(急求)

#include 《iostream》#include 《string》#include 《vector》#include 《algorithm》#include 《functional》//#include “stdafx.h“ 这个是VC编程中增加的一个用户自定义头文件,删掉得了。#include 《stdio.h》#include 《conio.h》 //这个是TC的一个头文件#include “ApiEx.h“估计你是复制的别人的代码,你编译会碰到很多问题,最好自己多研究一下



扫码加微信详细咨询太和智慧养老产品和平台服务!

微信