typeof关键字的作用
http://blog.chinaunix.net/uid-28458801-id-4200573.html
一、typeof详解:
前言:
typeof关键字是C语言中的一个新扩展,这个特性在linux内核中应用非常广泛。(其实这和C++的auto关键字和可以推断decltype关键字相当类似)
二、实例:
1,把y定义成x指向的数据类型:
typeof(*x) y;
2,把y定义成x指向数据类型的数组:
typeof(*x) y[4];
3,把y定义成一个字符指针数组:
typeof(typeof(char *)[4] y;
这与下面的定义等价:
char *y[4];
4,typeof(int *) p1,p2; /* Declares two int pointers p1, p2 */
int *p1, *p2;
5,typeof(int) *p3,p4;/* Declares int pointer p3 and int p4 */
int *p3, p4;
6,typeof(int [10]) a1, a2;/* Declares two arrays of integers */
int a1[10], a2[10];
三,局限
typeof构造中的类型名不能包含存储类说明符,如extern或static。不过允许包含类型限定符,如const或volatile。 例如,下列代码是无效的,因为它在typeof构造中声明了extern:
typeof(extern int) a;
四,参考博客
1,http://blog.csdn.net/wslong/article/details/7728811
2,http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof
typeof关键字的作用的更多相关文章
- typeof关键字
C语言中 typeof 关键字是用来定义变量数据类型的.在linux内核源代码中广泛使用. 使用方法 1.当x的类型为是 int 时 _min1变量的数据类型则为 int. 2.当x为一个表达式时(例 ...
- return 关键字的作用
注意: 如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值.(除了返回值类型是void以外) return 关键字的作用: 1. 返回数据给函数的调用者. 2. ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- Java对象表示方式1:序列化、反序列化和transient关键字的作用
平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...
- typeof关键字简介 -rtti
typeof关键字是C语言中的一个新扩展.只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别: 声明 函数声明符中的参数类型链表和返回类 ...
- C#里partial关键字的作用(转摘)
C#里partial关键字的作用(转摘) 1. 什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中. 局部类型适用 ...
- 序列化、反序列化和transient关键字的作用
引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口, ...
- Java关键字及其作用
Java关键字及其作用 一. 关键字总览 访问控制 private protected public 类,方法和变量修饰符 abstract class extends fin ...
- Android(java)学习笔记83:finally关键字的作用
package cn.itcast_07; import java.text.ParseException; import java.text.SimpleDateFormat; import jav ...
随机推荐
- bandit_pass
boJ9jbbUNNfktd78OOpsqOltutMc3MY1CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9UmHadQclWmgdLOKQ3YNgjWxGoRMb5luKpIwr ...
- How to use GitHub with Android Studio
转载于:http://www.wfuyu.com/technology/22499.html 目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的 ...
- <大话设计模式>笔记
读完了<大话设计模式>这本书,收获很多,对程序设计有了很多新的理解.将每章模式的大概要点做了些笔记以备查阅,一些设计模式书读完也对其了解得不是很透彻,需要以后在实践中来不断地加深理解吧.读 ...
- iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6
一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...
- 框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解)
框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解) 通过昨天的讲解,我们已经理解了运行时类型识别是什么. 比如 CObject * pthis = (Cobject *)Cre ...
- js回到顶部------转载
[1]锚点 使用锚点链接是一种简单的返回顶部的功能实现.该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置 [注意] ...
- OpenStack运维(三):OpenStack存储节点和配置管理
1.对象存储节点维护 1.1 重启存储节点 如果一个存储节点需要重启,直接重启即可. 1.2 关闭存储节点 如果一个存储节点需要关闭很长一段时间,可以考虑将该节点从存储环中移除. swift-ring ...
- Windows 刷新DNS缓存
释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew
- Oracle学习笔记_08_字符串连接
附录:参考资料 1.Oracle中字符串连接的实现方法 2.SQL指令— CONCAT(字符串连接函数)
- Linux_服务器_07_ 将用户设置为管理员
二.参考资料 1.CentOS普通用户获得管理员权限 2.linux下添加用户并赋予root权限