本文由创新互联(www.cdcxhl.com)小编为大家整理,本文主要介绍了c语言调用函数原则的相关知识,希望对你有一定的参考价值和帮助,记得关注和收藏网址哦!
1.概念:函数是一组共同执行任务的语句。每个C程序都必须有一个main函数。程序员可以将代码分成不同的功能。从逻辑上讲,这种划分通常基于执行特定任务的每个功能。c标准库提供了可以大量调用的库函数,如printf、strcmp等。
2.函数的定义
C语言中函数的一般定义如下:
return_type函数名(参数列表)
{
功能体
}
在C语言中,函数由函数头和函数体组成。该组合物包括以下几个方面:
函数名:上面的函数名是max。
函数的返回类型:函数可以返回值,其中max函数的返回值是int整数,函数也可以没有返回值,例如void max(),表示函数没有返回值。
注意,函数的返回类型的值与函数的返回类型一致,具体如下:

函数的参数:调用函数时,可以向函数的参数传递一个值。这个值叫做实参,函数的参数叫做形参。当然,函数也可以没有参数。
函数体:它包括函数中执行任务的语句。在例子中,函数体是return ab?aecho 4-@ . comb;
以下是定义比较大小函数的示例:

3.定义函数有两种情况。
在main函数之前定义,这种情况下程序不需要在main函数中声明。
它是在main函数之后定义的,需要在main函数中声明,比如声明Max函数的时候。
int main()
{
int Max(int a,int b);
}
二、函数的调用
1.在定义一个函数的时候,你会定义这个函数要做什么,然后通过调用这个函数来完成定义的任务。当一个程序调用一个函数时,程序的控制权就会转移给被调用的函数。被调用的函数执行定义的任务,当执行函数的r
C语言中不允许嵌套函数定义。所以程序中的函数是并行的,不存在上层函数和下层函数的问题。这是为了简化C语言编译器的逻辑。
安装python程序,以便可以使用python头文件和库。
添加 "Python.h "头文件链接到我们编写的源文件,并将它链接到 "python**。lib "库(需要明确这个库是静态库还是导出库)
并了解一些python 在我们的C程序中使用的语言api。
一些常用的C API函数
在理解以下函数之前,有必要了解python中的**PyObject***指针。几乎所有的对象都由这个指针指示。
Py_Initialize()Py_Finalize()
在调用任何python C函数之前需要调用的函数。 "初始化 "是用来初始化python模块的,推测是为了加载初始化加载dll。相应的用途最终确定 "在使用python模块后释放它。
PyImport_ImportModule()
用于加载python模块,这是一个通用的python文件。这里需要注意的是,当这个模块被加载时,模块中的所有可执行语句都会被执行。包括import import语句和函数体之外的所有语句。
PyObject_GetAttrString()
返回模块中的函数。
Py_BuildValue()
要构建一个参数元组,通常用这个函数来构建一个元组,然后这个元组作为参数传递给python中的一个函数。
PyEval_CallObject()
调用函数,并传递由 "Py_BuildValue"作为被调用函数的参数。
例子
下面的例子是调用Python C代码中的s函数,传递参数,获取返回值。
Test.cpp代码
#包括iostream
#包含Python.h
使用命名空间std
int main(int argc,char* argv[])
{
py _ Initialize();//初始化
PyObject * pModule = NULL
PyObject * pFunc = NULL
PyObject * pParam = NULL
PyObject * pResult = NULL
const char * pBuffer = NULL
int iBufferSize = 0;
p module = py import _ import module(&"; test _ python amp;");
如果(!p模块)
{
cout "获取模块失败! "endl
退出(0);
}
p func = py object _ GetAttrString(p module, "主 ");
如果(!pFunc)
{
cout "获取func失败! "endl
cout int(p func)endl;
退出(0);
}
过去分词aram = Py _ BuildValue( amp;"(s)和", "呵呵呵 ");
pResult = pye val _ call object(p func,PPAR am);
if(预设)
{
if(PyArg_Parse(pResult, "(si)和",pBuffer,iBufferSize))
{
cout pBuffer endl
cout iBufferSize endl
}
}
py _ DECREF(PPAR am);
py _ DECREF(p func);
py _ Finalize();
//cout amp;"你好 ":
返回( "你好 ", 5)
网页名称:c语言调用函数原则?(c语言可以在函数外面定义语句吗?)
网页地址:http://www.mswzjz.cn/qtweb/news32/318982.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能