文档章节

标准C11中的泛型

wangxuwei
 wangxuwei
发布于 2015/06/14 22:43
字数 108
阅读 336
收藏 4
点赞 0
评论 0
/*
 *
 *  gcc -std=c11 -o gen1 gen1.c 
 * 
 * */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define GENERAL_ABS(x)  _Generic((x), int:abs, float:fabsf, double:fabs)(x)


static void GenericTest(void)
{
    printf("int abs: %d\n", GENERAL_ABS(-12));
    printf("float abs: %f\n", GENERAL_ABS(-12.04f));
    printf("double abs: %f\n", GENERAL_ABS(-13.09876));
     
    int a = 10;
    int b = 0, c = 0;
     
    _Generic(a + 0.1f, int:b, float:c, default:b)++;
    printf("b = %d, c = %d\n", b, c);
     
    _Generic(a += 1.1f, int:b, float:c, default:b)++;
    printf("a = %d, b = %d, c = %d\n", a, b, c);
}

 
int main(void)
 
{
   GenericTest();
   return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
wangxuwei
粉丝 21
博文 326
码字总数 110959
作品 0
杭州
其他
c、c++作用域问题&C语言的各种版本:C89,AMD1,C99,C11

突然想到这个问题,循环变量i的作用范围。 标准c语言不能这样定义 编译会失败。 c++中 C语言的各种版本:C89,AMD1,C99,C11 【背景】 之前就知道了有个C90和C99。 后来又在: 【已解决】弄...

mickelfeng
2012/11/04
0
0
C语言自学《一》 ---- 初探C语言

初步了解C语言 C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务等等 C语言由一个国际标准定义,目前最新的标准为C11,由于C11标准定义的一些语言元素...

罗眯眯
2014/03/15
0
0
用ECL编译字符游戏的跨平台(Linux/OSX/WINDOWS)可执行文件

用ECL编译字符游戏的跨平台(Linux/OSX/WINDOWS)可执行文件 说明 前面我们用 写了一个代码超简短的字符游戏, 不过每次运行时都需要通过 来加载, 本文介绍一种可以把 代码编译为可执行文件的方...

FreeBlues
2016/01/20
122
15
哪里可以找到稍微系统一点的C11标准的资料??

哪里可以找到稍微系统一点的C11标准的资料?? 我在http://en.cppreference.com/w/上找到有C11标准,有些新特性还是比较值得我去了解的。具体可以直接上去看下有什么新特性。可惜就是它的描述...

AdamBC
2012/06/13
547
6
JavaSE_8系列博客——Java语言的特性(六)--泛型(5)--泛型的使用

JDK类库中泛型的使用 集合类 到目前为止,Java 类库中泛型支持存在最多的地方就是集合框架。就像容器类是 C++ 语言中模板的主要动机一样(参阅 附录 A:与 C++ 模板的比较)(尽管它们随后用...

u011500356
2017/09/23
0
0
BOOST.ASIO源码剖析(一)

前言 源码之前,了无秘密。 ——侯捷 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有...

moki_oschina
04/11
0
0
STL容器 容器适配器

所谓泛型编程就是以独立于任何特定类实现的方式编写代码,针对不同的类型提供通用的实现。 STL中的容器、迭代器、算法都是很好的泛型编程的实现。由于标准库使用了泛型技术,使得标准库几乎能...

zray4u
2016/07/19
27
0
游戏引擎Mojoc,(8)C实现泛型ArrayList

泛型ArrayList是基础的数据结构,然而在C的标准库里并没有提供,所以需要自己手动实现一个。Mojoc的ArrayList实现经过了实践的测试,达到了稳定和高效的状态,源码ArrayList.h。 本文主要介绍...

scottcgi
2017/12/03
0
0
【译】Swift 泛型宣言

原文:Generics Manifesto -- Douglas Gregor 译者注 在我慢慢地深入使用 Swift 之后,碰壁了很多次,很大一部分都是因为 Swift 的泛型系统导致的,很多抽象都没办法很好地表达出来,所以就翻...

四娘
2017/11/26
0
0
泛型编程与设计新思维

作者:徐景周 转帖:http://www.vckbase.com/document/viewdoc/?id=955 前言 永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解你...

ValueError
2011/01/12
275
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 为方便需要,所有的shell脚本放到 /usr/local/sbin/ 目录下 切换到 /usr/local/sbin/ 目录下,创建告警系统脚本 #!/bin/bash#Written by aming.# 是否发送邮件的开关(1表...

Zhouliang6
8分钟前
1
0
不要再问我跨域的问题了

原文链接:web.jobbole.com 【RTC实时互联网大会 限时免费 马上报名】www.bagevent.com 写下这篇文章后我想,要不以后就把这种基础的常见知识都归到这个“不要再问我XX的问题”,形成一系列内...

阿K1225
10分钟前
0
0
Tomcat配置虚拟路径

<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/data/dispute_https/headPortrait/" path="/headPortrait" reloadable="true"/> <!-- 该文件名为headPortrait.xml,放在${tomca......

Helios51
11分钟前
0
0
开源PaaS Rainbond 3.6.1 Released

本次3.6.1版本更新,重点修复了3.6.0版本部分情况下会出现的BUG,同时改进了内部市场、参数验证、历史消息等功能,详细更新记录如下—— 3.6.1 功能改进 云帮初次使用跳转至注册页面 消息添加...

好雨云帮
11分钟前
0
0
Unsupported major.minor version 52.0

执行代码的jdk版本 低于 编译的jdk版本 其中52.0 对应的就是 jdk1.8版本。

@林文龙
11分钟前
0
0
聊聊spring cloud的AbstractLoadBalancingClient

序 本文主要研究一下spring cloud的AbstractLoadBalancingClient AbstractLoadBalancingClient spring-cloud-netflix-ribbon-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/netfli......

go4it
13分钟前
0
0
博客改版通知

先上博客地址 --> http://metaphors.name 最近将博客从 Jekyll 迁到了 Hexo,所以简书、开源中国、博客园、CSDN文章中的的部分图片丢了,原文链接也不可用了,不过没关系,原文链接都会转到博...

Metaphors
13分钟前
0
0
vue基础知识练习

一、Hello World <div id="itany">{{msg}} <!-- 两对大括号{{}}称为模板,用来进行数据的绑定显示在页面中 --> </div><script src="js/vue.js"></script><script>var vm=new Vue({......

一个yuanbeth
17分钟前
0
0
spring @Transactional注解参数详解

原文:事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService {} 当类中某些方法不需...

binhu
20分钟前
0
0
CORS 跨域实践

本文首发于个人微信公众号《andyqian》,期待你的关注~ 前言 系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不...

andyqian
27分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部