C\C++区别 枚举类型enum

C\C++区别 枚举类型enum

from my csdn blog

enum.c

#include <stdio.h>

enum ShapeType{
    circle = 10, square = 20, rectangle = 30
};

int main(){

    enum ShapeType shape = circle;
    shape++;
    printf("%d\n", shape);

    return 0;
}
amrzs@ubuntu:cc$ gcc enum.c
amrzs@ubuntu:cc$ ./a.out 
11

enum.cpp

#include <cstdio>
using namespace std;

enum ShapeType{
    circle = 10, square = 20, rectangle = 30
};

int main(){

    ShapeType shape = circle;
    shape++;
    printf("%d\n", shape);

    return 0;
}
amrzs@ubuntu:cc$ g++ enum.cpp 
enum.cpp: In function ‘int main()’:
enum.cpp:11:10: error: no ‘operator++(int)’ declared for postfix ‘++’ [-fpermissive]
     shape++;

分析

  • 区别
    • C++可以说是ANSI C的超集,至于后来的C99又多了很多新的内容,与C++分道扬镳了
    • 写C就是写C,不要尝试使用C++编译器来实现
    • 可读性与可移植性,不要尝试那些诡异的代码,不同的编译器实现机制还不一样
    • 使用C++的方式更加安全
    原文作者:Amrzs
    原文地址: https://www.jianshu.com/p/85940474b8c0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞