在C和C++中struct与typedef struct的区别详细介绍
c中测试code
 struct Cmstruct
    {
        int c;
    } Cm; // Cm是一个变量
    typedef struct MyStruct //这里的 Mystruct 可以省略
    {
        int m;
    } My; // My 是struct MyStruct 别名
    My st;
    struct Cmstruct cm1;
    // 只能使用struct Cmstruct来定义 不能使用Cmstruct
    st.m = ;
    printf("%d\n", st.m); // 1
    // struct MyStruct st1; 报错,不能再用此方法,只能 My st1
    Cm.c = ;
    printf(
    cm1.c = ;
    printf(
c++中测试code
struct Mystruct
    {
        int m;
    } cm; // 上面c中说过cm是变量
    cm.m = ;
    printf(
    struct Mystruct my; // 声明 my 可以省略 struct,但是c中不可以省略
    my.m = ;
    printf(
    typedef struct Mystruct1
    {
        int s;
    } Sname; // Sname 是struct Mystruct1 别名
    Sname ss;
    ss.s = ;
    printf(
    struct Mystruct1 ss1; // struct Mystruct1中 struct 可以省略
    // 这里与C不同,在C中起别名后的struct不能再使用struct Mystruct1声明
    ss1.s = ;
    printf(
总结:
C与C++相同点
没有typedef时候cm/Cm是声明的一个变量,有typedef时候My/Sname 是struct别名。
C与C++不同点
没有typedef时候,C只能用struct Mystruct来声明变量,C++中可以省略struct。
有typedef时候,C只能使用别名来声明变量,C++依然可以使用struct Mystruct或者省略struct。
在C和C++中struct与typedef struct的区别详细介绍的更多相关文章
- nodejs中exports与module.exports的区别详细介绍
		
如果模块是一个特定的类型就用Module.exports.如果模块是一个典型的"实例化对象"就用exports. exports.name = function() { conso ...
 - php中is_null,empty,isset,unset 的区别详细介绍
		
is_null, empty, isset, unset 我们先来看看这4个函数的描述. isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_nul ...
 - C++/C中的struct和typedef struct用法和区别
		
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...
 - [转载]彻底弄清struct和typedef struct
		
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...
 - struct和typedef struct彻底明白了
		
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int ...
 - struct和typedef struct
		
转自:http://www.cnblogs.com/qyaizs/articles/2039101.html struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++ ...
 - struct和typedef struct的用法
		
我首先想到的去MSDN上看看sturct到底是什么东西,虽然平时都在用,但是每次用的时候都搞不清楚到底这两个东西有什么区别,既然微软有MSDN,我们为什么不好好利用呢,下面是摘自MSDN中的一段话: ...
 - 细说 struct和typedef struct
		
细说 struct和typedef struct 参考原文:http://www.cnblogs.com/qyaizs/articles/2039101.html,有些小改动~ 1 首先://注意在C ...
 - C++中引用与指针的区别(详细介绍)
		
C++中引用与指针的区别(详细介绍) C++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一 ...
 - struct和typedef struct在c++中的用法
		
#include<iostream> using namespace std; struct test{ int a; }test; //定义了结构体类型test,声明变量时候直接test ...
 
随机推荐
- java一个类 继承HttpServlet 和实现Servlet区别
			
java一个类 继承HttpServlet 和实现Servlet区别 servlet 是一个接口,如果实现这个接口,那么就必须实现接口里面定义的所有方法 而HttpServlet实现了servlet接 ...
 - Flutter学习笔记(12)--列表组件
			
如需转载,请注明出处:Flutter学习笔记(12)--列表组件 在日常的产品项目需求中,经常会有列表展示类的需求,在Android中常用的做法是收集数据源,然后创建列表适配器Adapter,将数据源 ...
 - HTTP_3_HTTP报文
			
用户HTTP协议交互的信息被称为HTTP报文 简单的请求报文和响应报文实例 HTTP传输过程中常用设置 提升传输速率 编码压缩传输 (常见压缩格式:gzip compress deflate ) 分块 ...
 - thinkphp phpexcel导出返回乱码
			
今天做了一个excel文件导出的功能 可是无论怎么改网上怎么搜答案什么缓冲啊charset=UTF-8'a都不起效 <?phpnamespace app\admin\controller;us ...
 - 8 NLP-自然语言处理Demo
			
1 NLP(自然语言处理) 1.1相似度 相似度和距离之间关系: 1.文本相似度: 1) 语义相似.但字面不相似: 老王的个人简介 铁王人物介绍 2) 字面相似.但是语义不相似: 我吃饱饭了 我吃不饱 ...
 - 【POJ - 2456】Aggressive cows(二分)
			
Aggressive cows 直接上中文了 Descriptions 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x ...
 - WebGL简易教程(一):第一个简单示例
			
目录 1. 概述 2. 示例:绘制一个点 1) HelloPoint1.html 2) HelloPoint1.js (1) 准备工作 (2) 着色器 (3) 顶点着色器 (4) 片元着色器 (5) ...
 - Oracle_InstantClient 及PL/SQL Developer工具的安装
			
一.下载 InstantClient 地址: http://www.oracle.com/technology/software/tech/oci/instantclient/index.html i ...
 - 8、大型项目的接口自动化实践记录----DB分别获取预期结果、实际结果
			
上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下D ...
 - 转载:MyBatis mapper.xml中使用静态常量或者静态方法
			
转自:https://my.oschina.net/wtslh/blog/682704 今天偶然之间刷到了这样一篇博客,有点意外 mybatis 还可以这样使用ONGL常量的方式,该方式针对 xml的 ...