免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 2007robot
打印 上一主题 下一主题

C语言中一个指针占用多少字节 [复制链接]

论坛徽章:
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
21 [报告]
发表于 2011-09-19 09:18 |只看该作者
回复  MMMIX


   
   但是程序员绝对没有资格认为编译器一定不会去做,那样就过界了
pmerofc 发表于 2011-09-19 09:06



    只要我能用到的编译器不会这么做,我就可以做这种假设,不存在什么过界问题。要是所有的东西都采取最保守的假设,那是不是有符号整数的表示方法也不能假设?浮点数呢?指针长度呢?各种不同数据类型的长度呢?(别说什么标准,有了就必须遵守么?)OS API 呢?等等等等,你不能确定的东西多了去了。什么都不确定,这个程序还怎么写?

写程序,自然有一套关于编译环境、运行环境的合理假设(一般标准并没有涵盖它们的全部),而指向不同类型的指针长度一致绝对是一个基本的、也是合理的假设。

论坛徽章:
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
22 [报告]
发表于 2011-09-19 09:21 |只看该作者
回复  MMMIX


    这个例子有什么不妥当的吗?
pmerofc 发表于 2011-09-19 08:59



    作为例子,没有什么不妥,但也没有太大的意义。不是说了么,你还可以找出更古老/古怪的编译器当作例子。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
23 [报告]
发表于 2011-09-19 09:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
24 [报告]
发表于 2011-09-19 09:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
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
25 [报告]
发表于 2011-09-19 09:30 |只看该作者
回复  MMMIX


   
    这个我认为不应该来自假设,而是应该确切地知道。应该是需求的范畴吧
pmerofc 发表于 2011-09-19 09:27



    实际编码中,这个就是假设。要是都确切的知道,也就不存在什么移植问题了。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
26 [报告]
发表于 2011-09-19 09:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
27 [报告]
发表于 2011-09-19 09:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
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
28 [报告]
发表于 2011-09-19 09:37 |只看该作者
我的机器上若int是2B,我是否可以说C语言的int类型数据是2B?
我看到一只羊是黑的,我能否假设所有的羊都是黑的?
再往后讨论恐怕就是哲学问题了

清楚自己是在假设,而不是手握真理即可。

不是假设,而恰恰是不要随意假设

谁说要随意假设了?指向不同类型的指针长度一致算是随意假设么?有符号数的表示呢?浮点数的表示呢?这些都不是随意的假设,而是完全合理的假设。

就一般情况来说,我觉得还真是这样
不是所有的机器都用补码

你是为所有机器写代码么?你的代码写出来就要在所有编译器上编译么?

浮点数有国际标准
这个和其他几种不同
pmerofc 发表于 2011-09-19 09:26

有标准怎么了?机器/编译器就要遵守么?或者说你用的机器/编译器就一定会遵守么?那些标准也只是人为规定,又不是自然规律,不可违抗。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
29 [报告]
发表于 2011-09-19 09:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
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
30 [报告]
发表于 2011-09-19 09:42 |只看该作者
本帖最后由 MMMIX 于 2011-09-19 09:43 编辑
在我看来这属于需求不明确,我认为这是很危险的事情
pmerofc 发表于 2011-09-19 09:34



    需求并不是在编码开始之前就完全确定再也不会变化的。没错,需求变化是风险,但软件开发中哪有那么多 100% 确定的事情?连计算机是不是使用二进制你都没法确定,例如 MIX 使用的就是十进制。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP