zoukankan      html  css  js  c++  java
  • C语言与C++不同之函数定义

    C 语言与C++在基本语法方面大部分是一致兼容的,但是在函数定义与调用方面还保持着差别,请看如下代码:

    #include "stdafx.h"
    int subtest(x,y)
    int *x,*y;
    {
    int z;
    z
    =*x>*y?*x:*y;
    return (z);


    }

    int main(int argc, char* argv[])
    {
        
    //printf("Hello World! ");
        int a=10;
        
    int b=20;
        printf(
    "%d ",subtest(&a,&b));
        
    return 0;
    }

    这种方法称为传统的对形参的声明方式,如下是C++标准允许的现代形参声明方式:

    #include "stdafx.h"
    int subtest(x,y)
    int *x,*y;
    {
    int z;
    z
    =*x>*y?*x:*y;
    return (z);


    }

    int main(int argc, char* argv[])
    {
        
    //printf("Hello World! ");
        int a=10;
        
    int b=20;
        printf(
    "%d ",subtest(&a,&b));
        
    return 0;
    }

    在VC6.0中*.c的文件前一种是可以的,*.cpp的前一种不可以,报错如下:

    F:/testfun/testfun.cpp(5) : error C2065: 'x' : undeclared identifier
    F:/testfun/testfun.cpp(5) : error C2065: 'y' : undeclared identifier
    F:/testfun/testfun.cpp(6) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
    F:/testfun/testfun.cpp(6) : fatal error C1004: unexpected end of file found
    Error executing cl.exe.

    testfun.exe - 4 error(s), 0 warning(s)
    由此可见c标准与c++标准还不是完全一致,特别是一些c语言专有的函数如 malloc alloc 等其处理方法很是不同。


  • 相关阅读:
    云之家技术文档下载
    原始MAC地址
    如何创建数据中心
    获取金蝶云试用许可
    【分享】工作流支持邮件提醒相关配置
    调试K3网页版需要注意的问题
    excel2010冻结行列
    Delphi 泛型 接口约束的实例 转
    delphi 各新版本特性收集
    Delphi XE Refactor重构功能简单说明 转
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/2422311.html
Copyright © 2011-2022 走看看