爱问知识人 爱问教育 医院库

C语言中关于函数内定义函数的问题

首页

C语言中关于函数内定义函数的问题

/*
  关于函数内定义函数的问题:
  此程序在Windows下的Visual C++下编译不能通过,
  但是在Linux下的Gcc却能通过

  问:如何在在Windows下的Visual C++实现这种函数内部定义函数?
  或者使某个特定函数只能被某一个函数调用?
*/
#include <stdio.h>

int main()
{
  void test()
  {
    printf("hello world");
  }
  test();
  
  return 0;
}

提交回答
好评回答
  • 2011-10-25 13:50:07
    编译器在编译c源代码时,首先会从本文件中查找对应的函数,如果找不到,就从头文件中去查找,如果找不着就报错。
    你想在只让特定的函数被特定的函数调用,你就将该函数和特定的函数写在同一个文件中,不再头文件中定义;或者定义在头文件中,只在特定的函数所在的文件中引用该头文件就可以了
    gcc对c进行很多扩展,功能很强大,但是不是标准的c;因此会出现这样的情况。为了兼容性,建议尽量少用此类的扩展功能

    2***

    2011-10-25 13:50:07

其他答案

    2011-10-26 11:20:39
  • 也可以用namespace来实现:
    namespace mainfunc
    {
    	void test()
    	{
    		printf("hello world\n");
    	}
    };
    int main()
    {
    using namespace mainfunc;
    test();
    return 0;
    }
    不用“using namespace mainfunc;”而直接调用test()函数的地方会出错.

    j***

    2011-10-26 11:20:39

类似问题

换一换
  • 程序设计 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):