关于C与C++的struct,union,enum用法差异
对着代码说话:
#include <stdio.h>
#include <stdlib.h>
struct test
{
int abc;
};
enum _enum {A,B,C};
union _union
{
int abc;
double cdf;
};
int main()
{
struct test t;
enum _enum a;
union _union u;
printf("Hello world!\n");
return 0;
}
- 在C中声明struct, enum, union时需要在类型前面加上这些关键字修改,否则报错。而C++则不用。
- 在C中使用typedef定义类型,可以省略struct,union,enum关键字。而这也是nginx的习惯用法,例如:
#include <stdio.h>
#include <stdlib.h>
struct test_s
{
int abc;
};
typedef struct test_s test;
enum _enum_e {A,B,C};
typedef enum _enum_e _enum;
union _union_u
{
int abc;
double cdf;
};
typedef union _union_u _union;
int main()
{
test t;
_enum a;
_union u;
printf("Hello world!\n");
return 0;
}
关于C与C++的struct,union,enum用法差异的更多相关文章
- C++11的enum class & enum struct和enum
C++11的enum class & enum struct和enum C++标准文档--n2347(学习笔记) 链接:http://www.open-std.org/jtc1/sc22/wg ...
- 【转】C++11的enum class & enum struct和enum
转自:https://blog.csdn.net/sanoseiichirou/article/details/50180533 C++标准文档——n2347(学习笔记) 链接:http://www. ...
- C/C++中struct/union/class内存对齐
struct/union/class内存对齐原则有四个: 1).数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储 ...
- iOS 开发-- enum与typeof enum用法
一, 两者的用法 枚举类型定义用关键字enum标识,形式为: enum标识符 { 枚举数据表 }; enum用来定义一系列宏定义常量区别用,相当于一系列的#define ** **,当然它后面的标识符 ...
- union的用法
union的用法 union用来连接两个查询语句,把两个查询语句的查询结果合并起来,两个查询语句的查询字段个数必须一样,否则会出错,查询的字段可以不一样,类型也可以不一样,但是这样查询的意义不大,如果 ...
- Java Enum用法详解
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- enum,struct,union类型使用和长度
VC,C++ Builder和lcc三个编译器 间枚举类型enum长度的情况. 各种C编译器默认的字节对齐数不一致,要写通用的代码,经常就是使用 #pragma pack(1) ... #pragma ...
- namespace、struct、enum、union、string(day01)
一 C++概述 C++历史背景 )C++的江湖地位 jave C C++ C# python )C++之父:Bjarne Stroustrup(--) ,Cpre,为C语言增加类的机制 ,Bjarne ...
随机推荐
- spring--mybatis事务总结
spring--事务原理.mybatis--MapperScannerConfigurer 和 mybatis--MapperProxy事务,最近想把spring mybatis中的事务和mapper ...
- 写入数据到Plist文件中时,第一次要创建一个空的数组,否则写入文件失败
#pragma mark - 保存数据到本地Plist文件中 - (void)saveValidateCountWithDate:(NSString *)date count:(NSString *) ...
- Request.QueryString
http://localhost:1988/JPKC/zuoyeDown.aspx?catalog=2009年第二学期为什么Request.QueryString["catalog" ...
- [Excel操作]Microsoft Office Excel 不能访问文件
最近,客户服务器迁移,因操作系统环境变化而引起的的环境问题一堆,遇到的问题并解决方法在“[Excel]操作”类别会体现. Microsoft Office Excel 不能访问文件“C:\\LMSEx ...
- SQL Server 发布订阅 发布类型详解
MicrosoftSQL Server 提供了三种复制类型. 每种复制类型都适合于不同应用程序的要求. 根据应用程序需要,可以在拓扑中使用一种或多种复制类型: 快照复制 事务复制 合并复制 为了帮助您 ...
- Swiper之滑块4
最炫3D走一波: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...
- 查询sql 并且读取
//显示地址 //VBSBegin // Set obj = GetObject("winmgmts:\\.\root\cimv2") // Set IPConfigSet = o ...
- ubuntu 12.04 安装 codeblock 12.11
原文地址:http://qtlinux.blog.51cto.com/3052744/1136779 参考文章:http://blog.csdn.net/dszsy1990/article/det ...
- mongodb gdal 矢量数据格式驱动
写了个mongodb的gdal driver,放在了github上,如果你需要,欢迎加入mongogis group. 直接的效果是使得QGIS, GeoServer, MapServer, ArcG ...
- defrag磁盘整理命令
1: Microsoft 磁盘碎片整理程序 2: 版权所有 (c) 2007 Microsoft Corp. 3: 参数错误. (0x80070057) 4: 描述: 5: 定位并合并本地卷中的碎片文 ...