C语言外部函数和函数调用有大的区别吗???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言外部函数和函数调用有大的区别吗???相关的知识,希望对你有一定的参考价值。
#include"stdio.h"
main()
void add(int c,int d);
void sub(int c,int d);
int a,b;
printf("a= ");
scanf("%d",&a);
printf("b= ");
scanf("%d",&b);
printf("\n");
add(a,b);
printf("\n");
sub(a,b);
void add(int c,int d)
printf("%d+%d=%d\n",c,d,c+d);
void sub(int c,int d)
printf("%d-%d=%d\n",c,d,c-d);
和
#include"stdio.h"
main()
extern add(int c,int d);
extern sub(int c,int d);
int a,b;
printf("a= ");
scanf("%d",&a);
printf("b= ");
scanf("%d",&b);
printf("\n");
add(a,b);
printf("\n");
sub(a,b);
add(int c,int d)
printf("%d+%d=%d\n",c,d,c+d);
sub(int c,int d)
printf("%d-%d=%d\n",c,d,c-d);
实在想不通有什么意义??
extern关键字有用的必要吗??
在外部定义的、声明的东西作用范围是整个文件。内部的作用范围只在该函数内。exturn说明使用外部的变量等,可有可无!
minGW可以在win下调用linux库函数吗?默认情况下
minGW可以在win下调用linux库函数吗?默认情况下
有的可以调用,有的不能调用,但是为了保持最大的兼容性,一些常规操作都是可以的,如:算点东西,打印出来,就是一些标准c的基本函数
但是涉及到底层,比如驱动一台打印机打印东西,如果标准C中没有相关函数或者不兼容,就不能用了,相关的头文件可能在库文件的头文件中可以找到,但是都是简单定义,会将此类函数忽略,造成链接的时候,无法解析外部变量
所以人们通常都是这样做,涉及底层就用windows的 API函数,而在Linux就用标准的函数,大部分多是UNIX上相似的一些函数
说了这么多,举个例子吧:
你可以用printf();是因为此函数所要做的事,UNIX类(和Linux一样)和Windows都能很容易通过一种相似的方式实现,所以printf()可以在两个平台都能使用。
在UNIX中创建一个文件用一个函数createfile(xx,xx,xx),全部小写,3个参数,而在Windows上,要达到此函数相同功能,就只能用API,CreateFile(xx.xx.xx ....... ),注意大小写,共有7个参数,这两个函数是不同的平台下使用的。
Mingw内就有相关API函数的库文件,参考一下API,就什么事都能做了。 参考技术A 不能,mingw没有cygwin那种能提供一部分linux接口的兼容层
要用linux库函数,可以找找cygwin,不是太特别的那种linux库函数的话cygwin里面可能有。 参考技术B 要看一下是什么样的函数吧。
一般的函数比如包含头文件<pthread.h>线程库里的是可以调用的,但是像linux的内核函数比如包含头文件<linux/**>,minGW里面没有相应的支持,就不能调用了。
以上是关于C语言外部函数和函数调用有大的区别吗???的主要内容,如果未能解决你的问题,请参考以下文章