千家信息网

如何理解ANSI和K&R两种函数定义风格

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关如何理解ANSI和K&R两种函数定义风格,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在C语言的函数定义上,我们通常都是用
千家信息网最后更新 2025年01月24日如何理解ANSI和K&R两种函数定义风格

这篇文章将为大家详细讲解有关如何理解ANSI和K&R两种函数定义风格,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在C语言的函数定义上,我们通常都是用的函数定义方式为ANSI-C的函数定义方式。但是在C语言之父创立C语言之时,函数的定义形式并非现在我们所见到的形式。下面的代码显示了这样的差别,注意观察二者在声明函数体签名上的差别。

#include #include /*K&R Standard==============start===================*/const char* originalFunc();/*K&R Standard---------------end--------------------*//*ANSI Standard=============start===================*/const char* ANSIFunc(char param1, char* param2);/*You also can define the function like below.* const char* ANSIFunc(char ,char*); *//*ANSI Standard--------------end--------------------*/int main() {     printf("const char* originalFunc(param1,param2):%s\n", originalFunc('a',          "word"));     printf("const char* ANSIFunc(param1,param2):%s\n", ANSIFunc('a', "word"));     return EXIT_SUCCESS;}/*K&R Standard==============start===================*/const char* originalFunc(param1, param2)char param1;char* param2; {     printf("param1:%c\nparam2:%s\n", param1, param2);     return "originalFunc";}/*K&R Standard---------------end--------------------*//*ANSI Standard=============start===================*/const char* ANSIFunc(char param1, char* param2) {     printf("param1:%c\nparam2:%s\n", param1, param2);     return "ANSIFunc";}/*ANSI Standard--------------end--------------------*/

K&R的风格与ANSI-C的比,K&R风格又称为identifier-list,而另一种风格则又称为declarator,其中originalFunc(param1, param2) 即为这个declarator。事实上两种风格在ANSI 99 标准中(6.9.1节)都有定义,只不过我们更推崇declarator的方式。因为它将对参数进行强制类型转换,而标识符列表的方式则没有进行这项操作。

关于如何理解ANSI和K&R两种函数定义风格就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

函数 风格 方式 语言 内容 差别 形式 文章 更多 知识 篇文章 不错 事实 事实上 代码 参数 只不过 将对 是在 标准 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 编写彩票选号缩水软件开发 为什么我的歌曲和服务器连接不了 闵行区防水网络技术供应商家 数据库与物流关系 数据库日志查看 h2数据库与redis 数据库方面的证书 监控室网络安全管理制度条例 杭州智能仓库软件开发定制方案 云服务器和手机卡 软件开发协议合同 网络安全信息技术培训总结 青岛水木石网络技术有限公司 不能找到系统数据库 杭州电脑软件开发费用是多少 打印机服务器路由器 石狮市慧心网络技术服务部 网络安全示范学校创建方案 软件开发未来5年规划 互联网领先科技成果展示馆 获取当前数据库名 青浦区综合网络技术咨询口碑推荐 服务器密码保存命令 广州小堡互联网科技有限公司 红河州软件开发培训机构 网络安全童谣4句 怎么学习it软件开发 2019网络安全网上答题 数据库系统三级结构是什么 数据库系统的四层模式结构
0