c语言宏定义问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:32:09
代码某文件中有 #ifdef HAVE_SELECT ,而且经测试 HAVE_SELECT 确实已被定义过,但是通过搜索“HAVE_SELECT”就是找不到在何处定义的。

可能在哪定义呢?给点建议
所有文件都搜索了,没有,右击定义也提示未定义

是啊,vs2003. 都找了。我怀疑是不是在什么库里面。

确实是跟select()调用有关,只是想知道具体在何处定义!

HAVE_SELECT猜想是系统支不支持select系统调用的宏,产生这个宏一般是在工程配置的时候,自动搜索系统是否支持select系统调用,例如linux系统上一般是支持的,所以会配置这个宏。因为是自动配置的,所以不会在你的C代码工程中出现。另外一种可能是工程的Makefile文件里面编译时通过-D选项传给工程的。
一般来说select系统调用都是支持的吧。

额 这个 如果使用visual studio的话

可以把鼠标移上去 然后右击 选定义 就可以找到

其他编辑器 如dev c++ 也有此功能

部分没有 可能要自己在头文件找
=========================================
哦 是么 什么编译器?
编译器里所有的头文件都找过了?
====================================
库和头文件一一对应 与库没有关系
如果你说都找了 那没有别的任何办法了 呵呵

肯定在工程的其他文件里
或许你会看到
#ifndef HAVE_SELECT 类似的东西。

我也遇到过这种情况 在C语言编译器的安装目录找找