‘壹’ C语言 不能调用函数
检查一下,函数调用结果能否通过参数 带回 调用处。
通常,参数用指针才能带回。
例如,函数定义改用:
int input(TS *M){}
int multi(TS *M1, TS *M2){}
‘贰’ C语言中一个函数如果在主函数中没有调用,会被编译么
会的,当你运行时,编译器还要检查你的函数是否有格式或其它错误!
‘叁’ C++语言中,唯一不能被别的函数调用的函数是
唯一不能被别的函数调用的函数是主函数。主函数是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。
(3)函数调用不能被编译扩展阅读:
主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串(它们通常被称为命令行参数),各个指针 argv[1] .. argv[argc-1] 指向每个这些字符串的第一个字符。
argv[0] 是指向一个表示用于执行该程序自身的名字的空结尾多字节字符串(或者当执行环境不支持时,为空字符串 "")的开头字符的指针。
这些字符串是可以改动的,虽然对它们的改动并不会被传回给执行环境:比如可以用 std::strtok 来使用它们。由 argv 所指向的数组的大小至少为 argc+1,其最后一个元素 argv[argc] 保证为一个空指针。
‘肆’ TC 2.0 中clrsrc函数不能被编译
或标签) ,该连接器无法找到所有的图书馆和目标文件它的搜索。一般情况下,有两个原因发生此错误:什么代码要求不存在(符号拼写错误或使用了错误的情况下,例如) ,或要求的代码错误的(您使用的是混合版本图书馆?一些从一个版本的产品,另一些从另一个版本) 。
无数种编码和编译错误可能会导致LNK2001 。有几个具体原因下面列出,一些有联系的更详细的解释。
编码问题
不匹配的情况下在您的代码或模块定义( 。画质)文件可能会导致LNK2001 。例如,如果您命名一个变量“ var1 ”在一个C + +源文件,并尝试使用它作为“ VAR1 ”在另一个,你会收到此错误。解决办法是完全匹配的情况下,文中所有提及。
一个项目,使用功能内嵌尚未确定了职能。 cpp文件,而不是在头文件可能会导致LNK2001 。
如果您使用的是C + +中,请确保使用外部的“ C ”时调用C函数的C + +程序。通过使用外部的“ C ”您的使用武力的C命名约定。了解编译器开关一样/总蛋白或/锝武力将文件编译为一个C ( /技术合作)或C + + ( /总蛋白)档案不管文件扩展名,或者您可能会得到不同的函数名比您预期的。
试图参考功能或数据不具备的外部联系的原因LNK2001 。 C + +中,内置的功能和构造数据内部的联系,除非明确指定为外部。
丢失函数机构或变量会导致LNK2001 。刚刚一个函数原型或外部宣言将使编译继续,没有错误,但链接将无法解决您的电话的地址或参考变量,因为没有功能代码或变量空间保留。
姓名装修采用参数的函数进入最后装饰功能名称。调用一个函数的参数类型不匹配是在函数声明可能会导致LNK2001 。
错误包括原型将导致编译预期功能的机构,不提供。如果您同时拥有一类和非类执行函数F ,小心C + +的范围内解决的规则。
当使用C + +中,一定要包括执行特定功能的一类,而不只是一个原型的类的定义。
试图调用一个纯虚函数的构造函数或析构函数的抽象基类将导致LNK2001因为按照定义一个纯虚函数没有基类执行。
全球唯一的函数和变量是公开的。
职能宣布与静态修饰的定义文件的范围。静态变量具有相同的限制。试图访问任何静态变量以外的文件,他们被宣布可能会导致出现一个编译错误或LNK2001 。
一个变量的函数内宣布(一局部变量)只能使用范围之内的这一职能。
C + +的全球静态常量有联系。这是不同于c.如果您尝试使用全球不断在C + +的多个文件你错误LNK2001 。一个办法是包括常量初始化的一个头文件,其中包括在您的头。 cpp文件必要时,就好像它是一个函数原型。另一种办法是使变量非恒定和使用时参考不断评估它。
‘伍’ 函数不被调用还能运行吗
你应该指的是中断服务函数:就是后缀为interrup的函数!这种函数是不能被调用的!但是只要相应的中断打开!
比如程序中的
ET0=1指的是定时器T0中断打开 EA=1代表总中断打开!
TR0=1 指启动定时器0
这样的话对应的中断服务函数就会在定时器溢出后!触发中断中断服务函数就会被执行!
interrupt 后面的数字代表中断类型
0代表外部中断0
1代表定时器T0中断
2代表外部中断1
3代表定时器T1中断
4代表串口中断 普通的51单片机主要就是这5个中断!
‘陆’ 如下的函数调用为什么会在编译的时候出错
在函数声明和定义的时候,如果参数列表为空,可以设为void,但调用的时候,因为参数列表为空,说明没有传递参数。
定义一个函数如下:
int getNum( int nNum )
{
return nNum;
}
则,调用的时候必须要给nNum赋值的,总不能在main()函数中这样调用吧
int main(){
getNum( int nNum );
}
所以调用的时候不用加void;
‘柒’ c语言 自己写了一个函数不能被调用
//你改变的只是子程序里的局部变量,所以你的主函数里是得不到结果的
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#defineMAX_LENGTH_NAME20
typedefcharNOM[20];
int**open(constchar*,int*,int*);
intmain(void)
{
intgrille_nbl=0,grille_nbc=0;
inti,j;
printf("%d%d ",grille_nbl,grille_nbc);
int**tab=NULL;
tab=open("1.txt",&grille_nbl,&grille_nbc);
printf("%d%d ",grille_nbl,grille_nbc);
for(i=0;i<=grille_nbl;i++)
{
for(j=0;j<=grille_nbc;j++)
{
printf("%d",tab[i][j]);
}
printf(" ");
}
if(tab)
{
free(tab[0]);
free(tab);
}
returnEXIT_SUCCESS;
}
int**open(constchar*nom_fichier,int*grille_nbl,int*grille_nbc)
{
inti,j;
FILE*fichier=NULL;
int**r=NULL;
fichier=fopen(nom_fichier,"rt");
if(fichier==NULL)
{
fprintf(stderr,"Erreur ");
returnNULL;
}
fscanf(fichier,"%d%d",grille_nbl,grille_nbc);
r=(int**)malloc(grille_nbl[0]*sizeof(int*));
if(r==NULL)returnNULL;
r[0]=(int*)malloc(grille_nbl[0]*grille_nbc[0]*sizeof(int));
if(r[0]==NULL)
{
free(r);
returnNULL;
}
for(i=1;i<grille_nbl[0];++i)
{
r[i]=r[i-1]+grille_nbc[0];
}
for(i=0;i<grille_nbl[0];++i)
{
for(j=0;j<grille_nbc[0];++j)
{
r[i][j]=0;
}
}
fclose(fichier);
returnr;
}
‘捌’ C语言中不能被调用的函数是( )函数
main
主函数
主函数只可以返回数值给操作系统
‘玖’ 问个问题,为什么我定义的static函数能被其他源文件调用。
不能。
C语言中的static函数:
内部函数和外部函数
函数一旦定义后就可被其它函数调用。但当一个源程序由多个源文件组成时,在一个源文件中定义的函数能否被其它源文件中的函数调用呢。为此,C语言又把函数分为两类:
一、内部函数
如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函
数。定义内部函数的一般形式是: static 类型说明符 函数名(形参表) 。
例如:
static int f(int a,int b) 内部函数也称为静态函数。但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。 因此在不同的源文件中定义同名的静态函数不会引起混淆。
‘拾’ 在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误,这句话为什么错
被调用函数不在主函数中声明的。比如使用了include文件包含,就可以直接使用,不同定义了。