`
jiangshuiy
  • 浏览: 339291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C与C++的细微区别——省略形式参数名

 
阅读更多

一、C与C++的细微区别

在函数声明中:
无论是C还是在C++,都可以省略形式参数名。
但是,通常都建议省略形式参数名。

在函数定义中:
1. 当需要使用形式参数的时候,显然,必须给形式参数命名。

2. 当不需要使用形式参数的时候,C与C++有微小差异:
—— C不能省略形式参数名, 即使不使用。
—— C++可以省略形式参数名如果不使用。
—— 并且在C++中,如果给不使用的形式参数命名,可能会得到一个警告

 

 

二、示例:

#include <stdio.h>

void greeting_omit(const char* name);
void greeting_unuse(const char* name);
void greeting_nowarning(const char* name);

int main(void) {
    greeting_omit("");
    greeting_unuse("");
    greeting_nowarning("");
    (void)getchar();
    return 0;
}

 

三、三个函数分别实现如下:

void greeting_omit(const char* ) {
    printf("hello world\n");
}
 ——在C中是错误:

1. msvc :
error C2055: expected formal parameter list, not a type list
error C2055: 应输入形参表,而不是类型表

2. gcc : (报错更清晰一些)
error: parameter name omitted
错误: 省略参数名

——在C++中正确,且无警告。

 

void greeting_unuse(const char* name) {
    printf("hello Cherrie\n");
}
 在C和C++中都正确,但可能得到一个警告:

1. msvc :
warning C4100: 'name' : unreferenced formal parameter
warning C4100: “name”: 未引用的形参

2. gcc :
warning: unused parameter 'name'
警告: 未使用的参数‘name’

在gcc中,打开这个警告的选项是-Wunused-parameter
该选项包含在-Wall中。

 

void greeting_nowarning(const char* name) {
    (void)name;
    printf("hello OwnWaterloo\n");
}

 在C和C++中都正确,并且无警告。

 

 

 

原文链接 - http://www.cppblog.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html

分享到:
评论

相关推荐

    超越c++标准库——boost程序库导论

    《超越C++标准库——Boost程序库导论》是一本深度探讨C++开发中的Boost库的专著。Boost库是C++社区公认的扩展标准库,它包含了大量的高效、高质量的可重用C++组件,旨在提升C++的灵活性、效率和可移植性。这本书面向...

    C语言与C++区别

    C语言与C++的区别,C语言的应用及其他

    C++标准库——自学教程与参考手册(第2版)英文版

    ### C++标准库——自学教程与参考手册(第2版)知识点详解 #### 一、书籍基本信息概述 《C++标准库——自学教程与参考手册(第2版)》是一本由Nicolai M. Josuttis编写的权威指南,旨在帮助读者深入理解并掌握C++...

    c++————————笔记

    根据提供的文档内容,我们可以归纳出一系列关于C++的重要知识点,这些知识点主要涵盖了C++的基础语法、数据类型、内存管理、程序结构以及高级特性如类、继承与多态等。下面将详细阐述这些知识点: ### 1. 引言 C++...

    数据结构 C++语言描述——应用标准模板库(STL)(第2版)源代码

    本书是Ford和Topp两位教授于1996年出版的名著Data Structures with C++的第2版,新版中引入了在ANSI C 1998中正式规定的标准模板库(STL)来讲授数据结构,在全球范围内已经有数以万计的学生从中受益。 作者将C++...

    《C++语言描述——数据结构算法与应用》高清版

    《C++语言描述——数据结构算法与应用》是一本深入探讨C++编程语言在数据结构和算法领域的专著。本书以其清晰的阐述和丰富的实例,为读者提供了全面且深入的数据结构理论与实践知识,旨在帮助程序员提升在软件开发中...

    象棋 c++ 写的 ——————

    在本文中,我们将深入探讨如何使用C++编程语言来实现一个功能完备的MFC(Microsoft Foundation Classes)象棋程序。MFC是微软提供的一套面向对象的类库,用于简化Windows应用程序的开发,它基于C++,并封装了Windows...

    C++工具类——动画Demo

    在这个"**C++工具类——动画Demo**"中,我们看到一个利用Boost库实现的动画类,这为开发者提供了一种高效且灵活的方式来创建动态效果。Boost是一个流行的C++库集合,它包含了许多实用的工具和组件,可以增强标准库的...

    C++课程设计——计算器.doc

    C++课程设计——计算器.doc

    Visual C++程序设计——基础与实例分析源代码

    《Visual C++程序设计——基础与实例分析源代码》是一本深入浅出的教程,旨在帮助初学者和进阶者掌握Visual C++编程技术。这本书通过丰富的实例,详细讲解了Visual C++的基础知识和实际应用,是学习C++在Windows平台...

    C++课程设计——个人财务管理

    C++课程设计——个人财务管理,作为大学课程设计挺不错的,希望对大家有帮助。

    数据结构 C++语言描述——应用标准模板库(STL)(第2版)源代码 .net版

    本书是Ford和Topp两位教授于1996年出版的名著Data Structures with C++的第2版,新版中引入了在ANSI C 1998中正式规定的标准模板库(STL)来讲授数据结构,在全球范围内已经有数以万计的学生从中受益。 作者将C++...

    C++程序设计教程——设计思想与实现习题代码答案

    《C++程序设计教程——设计思想与实现习题代码答案》是一本面向初学者和有一定基础的程序员的教育性资源,旨在帮助读者深入理解和掌握C++编程语言。这本书结合了作者两年的教学实践经验,使得内容既理论严谨又贴近...

    C/C++课程设计——课程设计宾馆客房管理系统(源代码+课设报告+详细注释).zip

    C++课程设计——课程设计宾馆客房管理系统(源代码+课设报告+详细注释) 实现功能如下: 1、输入用户名和密码 2、选择服务类型: ①订房;②入住;③退房;④查询; 本系统设置了80个房间,其中房间分四个等级,每...

    C/C++课程设计——职工工作量统计系统(源代码、注释).zip

    C/C++课程设计——职工工作量统计系统(源代码): 功能包括: 1、职工基本信息输入; 2、输出信息; 3、工作量输入; 4、按工作量排序 打印出职工名次; 5、按职工工号查询; 6、按职工姓名查询; 7、按职工工号进行...

    C语言C++实战之——《端口扫描与信息探测》原理和实现

    你知道端口扫描吗?侵入计算机,了解计算机网络服务类型,探寻端口弱点!需要完整视频和源码的,关注私信我。

    C++小游戏——射击小行星源码

    在这个名为"C++小游戏——射击小行星源码"的项目中,我们主要探讨的是使用C++编程语言开发的一款简单射击游戏。游戏的核心概念是控制一艘飞船,抵御来自外太空的小行星撞击,通过射击来摧毁这些小行星。这个项目可以...

Global site tag (gtag.js) - Google Analytics