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 等其处理方法很是不同。


  • 相关阅读:
    python读取文件的方法
    python中global 和 nonlocal 的作用域
    android环境安装及配置
    python学习——sys.argv
    python学习——urlparse模块
    android:cmd下面用adb打log
    获取系统的换行符
    python----字符串方法
    类的继承---多重继承(两个父类有相同方法名和参数)
    Djngo 请求的生命周期
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/2422311.html
Copyright © 2011-2022 走看看