免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3779 | 回复: 18
打印 上一主题 下一主题

int a=0i; [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-01 15:17 |只看该作者 |倒序浏览
最近读到一段代码中,发现 int a=0i;

不明白0i 什么意思,多谢知道

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2008-08-01 15:30 |只看该作者
原帖由 memory13shao 于 2008-8-1 15:17 发表
最近读到一段代码中,发现 int a=0i;

不明白0i 什么意思,多谢知道

什么代码,贴出来看看?什么语言写的?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
3 [报告]
发表于 2008-08-01 16:38 |只看该作者
偶也很奇怪这个!!!

论坛徽章:
0
4 [报告]
发表于 2008-08-01 17:20 |只看该作者

回复 #1 memory13shao 的帖子

这个能编译通过吗?把上下文帖出来看看!

论坛徽章:
0
5 [报告]
发表于 2008-08-01 17:24 |只看该作者
能编译通过,主要是公司里代码拿不出来,无法给各位贴出来,是用c写的

论坛徽章:
0
6 [报告]
发表于 2008-08-01 18:11 |只看该作者
能编译通过的不一定就是对的,也有可能是瞎猫碰了死耗子……
在 gcc 里面没有这个 suffix,但是还是过了。MSDN 里面也没有查到这个 suffix。

再实验一下

  1. int a = 1i
复制代码

在 gcc 出来的是 a = 0。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2008-08-01 20:17 |只看该作者
原帖由 swordfish.cn 于 2008-8-1 18:11 发表
能编译通过的不一定就是对的,也有可能是瞎猫碰了死耗子……
在 gcc 里面没有这个 suffix,但是还是过了。MSDN 里面也没有查到这个 suffix。

一般来说,gcc 编译不出错,语法都不会有问题。这点信心还是要有的。

int a = 1i

在 gcc 出来的是 a = 0。

1i 这个是 gcc 的扩展,表示复数。编译时用 -pedantic -std=c99 会有警告的。

论坛徽章:
0
8 [报告]
发表于 2008-08-01 20:21 |只看该作者
原帖由 MMMIX 于 2008-8-1 20:17 发表

一般来说,gcc 编译不出错,语法都不会有问题。这点信心还是要有的。


1i 这个是 gcc 的扩展,表示复数。编译时用 -pedantic -std=c99 会有警告的。


呵呵,找到了。

To write a constant with a complex data type, use the suffix `i' or
`j' (either one; they are equivalent).  For example, `2.5fi' has type
`_Complex float' and `3i' has type `_Complex int'.  Such a constant
always has a pure imaginary value, but you can form any complex value
you like by adding one to a real constant.  This is a GNU extension; if
you have an ISO C99 conforming C library (such as GNU libc), and want
to construct complex constants of floating type, you should include
`<complex.h>' and use the macros `I' or `_Complex_I' instead.


我原来想得偏门了。联想到了一个编译器实现相关的东西了。

论坛徽章:
0
9 [报告]
发表于 2008-08-01 20:35 |只看该作者
再搭车问一下,复数要怎么输出啊?

论坛徽章:
0
10 [报告]
发表于 2008-08-01 20:58 |只看该作者
自问自答一下

  1. man complex.h
复制代码

里面有一大堆函数可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP