导航:首页 > 方法技巧 > c如何调用方法

c如何调用方法

发布时间:2022-07-06 10:11:45

㈠ C语言函数调用的三种方式并分别举一例。

1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值

void Exchg1(int x, int y)

{

int tmp;

tmp=x;

x=y;

y=tmp;

printf(“x=%d,y=%d/n”,x,y)

}

void main()

{

int a=4,b=6;

Exchg1 (a,b) ;

printf(“a=%d,b=%d/n”,a,b)

}

2、地址传递,相当于建立了px和py两个指向整型的指针,其值分别为a和b的地址

Exchg2(int *px, int *py)

{

int tmp=*px;

*px=*py;

*py=tmp;

print(“*px=%d,*py=%d/n”,*px,*py);

}

main()

{

int a=4;

int b=6;

Exchg2(&a,&b);

Print(“a=%d,b=%d/n”, a, b);

}

3、引用传递,x和y直接引用a和b,对a和b操作,相当于给a、b起了别名x、y

Exchg2(int &x, int &y)

{

int tmp=x;

x=y;

y=tmp;

print(“x=%d,y=%d/n”,x,y);

}

main()

{

int a=4;

int b=6;

Exchg2(a,b);

Print(“a=%d,b=%d/n”, a, b);

}

(1)c如何调用方法扩展阅读:

printf用法:

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d ",a);

输出结果为a=1234。

㈡ C语言如何调用

先声明被调用函数,然后在主调函数(可以为main函数也可为一般功能函数)里进行调用!!!

㈢ C语言中方法的调用问题

定义了一个简单的函数func1, 调用的时候只需要"函数名()" 的方式就可以调用的到。(至于调用的过程是如何处理的,就要参考汇编的知识了。)

但是,在实际的开发过程中可能会遇到这种情况, 函数名事先并不确定,函数名是通过一个字符串变量保存的,这种状况该如何调用呢?
更具体一点的例子,函数名是通过外部输入进去了。
该如何执行func1呢?
解决以上问题之前, 首先引入函数指针的概念。
在C语言中,某一数据变量的内存地址可以存储在相应的指针变量中,比如 int * , char * 等,
对于函数来说,也同样如此,函数的首地址也可以存储在某个函数指针变量里,通过这个函数指针变量我们就可以调用所指向的函数了。
如何定义函数指针变量? 很简单。
对应到上面 func1 函数,可以定义如下的指针变量。
void (*funcP)()
funcP这个名字可以随便取。
/************************
* add by oscar999
************************/
func1()
{
printf("this is func1!\n");
}

void main()
{
void (*funcP)();
funcP = &func1;
(*funcP)();
}
有了如上的例子,不难想到:
如果事先定义一些函数指针,通过传入的函数名字串,得到相应的函数指针,就可以实现函数调用了。
[cpp] view plainprint?
/************************
* add by oscar999
************************/
#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{
printf("this is func2!\n");
}
funcP getFuncPointer(char* sfuncname)
{
if(strcmp(sfuncname,"func1")==0)
{
return &func1;
}else if(strcmp(sfuncname,"func2")==0){
return &func2;
}
return NULL;
}

void main()
{
char c[20] = "\0";
funcP funcp = NULL;
printf("please input func name:");
scanf("%s",c); //input func1 or func2
funcp = getFuncPointer(c);
if(funcp!=NULL)
{
(*funcp)();
}
}
/************************
* add by oscar999
************************/

#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{

printf("this is func2!\n");
}
funcP getFuncPointer(char* sfuncname)
{

if(strcmp(sfuncname,"func1")==0)
{

return &func1;

}else if(strcmp(sfuncname,"func2")==0){
return &func2;

}
return NULL;

}

void main()
{

char c[20] = "\0";

funcP funcp = NULL;

printf("please input func name:");
scanf("%s",c); //input func1 or func2

funcp = getFuncPointer(c);

if(funcp!=NULL)
{

(*funcp)();

}
}
你可能会想,通过传入的string 直接调用对应的function不就可以了吗?类似:

[cpp] view plainprint?
/************************
* add by oscar999
************************/
#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{
printf("this is func2!\n");
}
void main()
{
char c[20] = "\0";
funcP funcp = NULL;
printf("please input func name:");
scanf("%s",c); //input func1 or func2
if(strcmp(c,"func1")==0)
{
func1();
}else if(strcmp(c,"func2")==0){
func2();
}
}
/************************
* add by oscar999
************************/

#include <stdio.h>
typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{

printf("this is func2!\n");
}
void main()
{

char c[20] = "\0";

funcP funcp = NULL;

printf("please input func name:");

scanf("%s",c); //input func1 or func2
if(strcmp(c,"func1")==0)
{

func1();
}else if(strcmp(c,"func2")==0){
func2();

}
}
以上这种对于 function 较少的状况可以使用, 但是func很多的话, 或者动态的生成这部分的话,指针函数的方式就很好了。
函数名字串和函数指针放到一个name value set 中去, 这样就可以很容易得到函数指针了。

㈣ c语言中函数的调用方法

呃···
看书会比较明白吧···
1、函数声明: 返回类型 函数名(形参1,形参2,形参3);(以此类推,有几个参数写几个)
2、函数调用:函数名 (实参1,实参2,实参3); (以此类推,有几个参数写几个)

3、函数算法:返回类型 函数名(形参1,形参2,形参3)(以此类推,有几个参数写几个)

{

}

㈤ c语言中怎么调用自己定义的函数

在使用一个函数之前必须先对他进行声明:

//void B();声明B函数的存在。void A(){B();//非法,程序执行到此时并不知道B函数的存在。}void B(){}

或者

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int fa(int n)

{

int a;

for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);

if(a>sqrt(n*1.0))

return(1);

else

return(0);

}

void main( )

{

int n,q;

scanf("%d",&n);

(5)c如何调用方法扩展阅读

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int fa(int n)

{

int a;

for(a=2;a<=sqrt(n*1.0),n%a!=0;a++);

if(a>sqrt(n*1.0))

return(1);

else

return(0);

}

void main( )

{

int n,q;

scanf("%d",&n);

if(fa(n)==1)

printf("n");

else

printf("y");

system("pause");

exit(0);

}

㈥ C语言如何调用函数

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdio.h>
intfun(intx,inty);//函数声明,如果函数写在被调用处之前,可以不用声明
voidmain()
{
inta=1,b=2,c;
c=fun(a,b);//函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
//自定义函数fun
intfun(intx,inty)//函数首部
{//{}中的语言为函数体
returnx>y?x:y;//返回x和y中较大的一个数
}

(6)c如何调用方法扩展阅读

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

㈦ c语言如何实现函数的调用

如何调用C语言写的库,如a.lib等,有对应的库头文件a.h。假设a.h中定义了函数:
int
WhyCoding(int
a,
float
b);
做法是,
/*
cpp_a.h
*/
extern
"C"
{
#include
"a.h"
}

/*
cpp_a.h
*/
extern
"C"
{
int
WhyCoding(int
a,
float
b);
/*
重定义所有的C函数
*/
}
从上面可以看出,extern
"C"
是用在C和C++之间的桥梁。之所以需要这个桥梁是因为C编译器编译函数时不带
函数的类型信息,只包含函数符号名字,如C编译器把函数int
a(float
x)编译成类似_a这样的符号,C连接器只要
找到了调用函数的符号,就可以连接成功,它假设参数类型信息是正确的,这是C编译连接器的缺点。而C++
编译器为了实现函数重载,编译时会带上函数的类型信息,如他把上面的a函数可能编译成_a_float这样的
符号为了实现重载,注意它还是没有带返回值得信息,这也是为什么C++不支持采用函数返回值来区别函数
重载的原因之一,当然,函数的使用者对函数返回值的处理方式(如忽略)也是重要原因。
基于以上,C调用C++,首先需要用封装函数把对C++的类等的调用封装成C函数以便C调用,于是extern
"C"

作用是:让编译器知道这件事,然后以C语言的方式编译和连接封装函数.(通常是把封装函数用C++编译器按C++
方式编译,用了extern
"C"
后,编译器便依C的方式编译封装接口,当然接口函数里面的C++语法还是按C++方式
编译;对于C语言部分--调用者,还是按C语言编译;分别对C++接口部分和C部分编译后,再连接就可以实现C
调用C++了).
相反,C++调用C函数,extern
"C"
的作用是:让C++连接器找调用函数的符号时采用C的方式,即使用_a而不是
_a_float来找调用函数。

㈧ c语言中函数调用有三种方法,能帮忙各举个例子吗

1、首先在打开的C语言数据库中,输入【#include】,如下图所示。

㈨ 如何在C#中,在一个类里调用另外一个类的方法

如果要通过类名来用方法的话,那其中的方法必须是静态方法,需加上static。即public static void get() {...}。静态方法是跟类关联的,允许不对classA实例化,就可以用它的方法。

把A类有引用的方法加static

public class A

public static void MethodA()//如果不是static 就要实例化才能调用

public class B

public void MethodB

A.MethodA();//第一种方式

如果MethodA()没有加static关键字

则使用 new A().MethodA();

}

语言结构

类:一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。在C#中类的声明与C++和Java很相似。但是,不像C++,C#结构体与类是不支持继承多个父类。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了同样的作用。

以上内容参考:网络-c#

阅读全文

与c如何调用方法相关的资料

热点内容
讨论研究蓄积作用的意义和方法 浏览:314
血余炭的食用方法 浏览:256
牛蛙骨骼标本制作方法步骤 浏览:984
红铜火烧后用什么方法使其变硬啊 浏览:901
早些入睡的正确方法 浏览:640
电脑蓝屏了怎么办多种方法 浏览:187
皮筋安装方法 浏览:945
磁力表使用方法 浏览:806
如何计算下期和值的方法 浏览:167
火线脓疱的快速获得方法 浏览:547
尾盘快速跳水方法 浏览:437
豆角种植搭架方法图片 浏览:978
中学物理的研究方法 浏览:107
好用的图片文字识别方法 浏览:337
遮阳草帽的正确方法 浏览:99
传统客家民居研究方法 浏览:408
泰州行李箱销毁方法有哪些 浏览:361
阴茎血流量检测的方法 浏览:408
德众尚杰原车协议安装方法 浏览:853
盘点的复盘的正确方法和步骤 浏览:128