发新帖我要提问
12
返回列表
打印
[开发工具]

MDK下新的编程习惯,和大家分享一下、、、、

[复制链接]
楼主: xlsbz
手机看帖
扫描二维码
随时随地手机跟帖
21
sedatefire| | 2014-11-16 21:23 | 只看该作者 回帖奖励 |倒序浏览
xlsbz 发表于 2014-11-16 20:30
嗯 我说的有点问题 看样子。 以前好像不报警啊。难道是编译器版本新了?

准确说法是

了解了,谢谢,这个我以前还有过感悟。
更郁闷的是,ARRAY_SIZE() 就访问不到东西。

在使用数组的代码位置,不管看到.h的声明也好,还是.c定义也好
如果“[]”里面不指明具体的大小,编译器就不会执行越界检查。

使用特权

评论回复
22
xlsbz|  楼主 | 2014-11-16 21:32 | 只看该作者
sedatefire 发表于 2014-11-16 21:23
了解了,谢谢,这个我以前还有过感悟。
更郁闷的是,ARRAY_SIZE() 就访问不到东西。

我个人的看法 不一定全面

使用特权

评论回复
23
小班儿| | 2014-11-16 23:27 | 只看该作者
学习了……

使用特权

评论回复
24
nametony| | 2014-11-17 00:07 | 只看该作者
        楼主发表这样的帖子, 真该打屁股!
       
        自己都没搞明白, 建议什么呢.
       
                "uint8_t   tmp[] = {0,1,2,3,4,5,6,7,8};
                 在MDK下 最好写成 uint8_t   tmp[9] = {0,1,2,3,4,5,6,7,8};"
        你这个建议, 表明你程序写少了, 没能领会前者的美妙.
       
                "还有 在一个文件下定义 __IO   t = 0;
                  另一个文件下,可以定义为只读或只写  extern __I  t;"
        定义成一致是程序员应该遵守的. 替换后不一致编译器也不允许的.
                 
                "如果 另一个文件extern U8 TMP[];
                 那么sizeof[TMP]就等于1."
        首先我原意相信"sizeof[TMP]" 是"sizeof(TMP)"的误写.
        其次, "extern U8 TMP[];"是未定型的定义, 那么编译器
        遇"sizeof(TMP)"肯定会报错, 何来等于1 ?
       

使用特权

评论回复
25
xlsbz|  楼主 | 2014-11-17 07:57 | 只看该作者
nametony 发表于 2014-11-17 00:07
楼主发表这样的帖子, 真该打屁股!
       
        自己都没搞明白, 建议什么呢.

首先,你头伸的越长,越看不到我的屁股。你是够不着我的屁股的。

(1)“没能领会前者的美妙”??请解释一下理由。
(2)“定义成一致是程序员应该遵守的”,嗯,你说的也有道理。
(3)就属于钻牛角尖了。

使用特权

评论回复
26
864| | 2014-11-17 09:38 | 只看该作者
xlsbz 发表于 2014-11-16 20:21
sizeof 我说的是这个意思  在一个文件夹下面定义

U8 TMP[10] = 0;那么在这个文件下sizeof[10]就等于10

这个与mdk无关
U8 TMP[10] = 0;是定义变量,需要分配空间,所以sizeof知道其大小
extern U8 TMP[],是变量的申明,不分配空间,编译器并不知道此变量定义在哪里,故sizeof也不知道其大小

使用特权

评论回复
27
xlsbz|  楼主 | 2014-11-17 09:58 | 只看该作者
864 发表于 2014-11-17 09:38
这个与mdk无关
U8 TMP[10] = 0;是定义变量,需要分配空间,所以sizeof知道其大小
extern U8 TMP[],是变 ...

除了“这个与mdk无关”不大同意,别的非常认同

使用特权

评论回复
28
feilusia| | 2014-11-18 10:38 | 只看该作者
一人争一句“有关系”、“没关系”,谁也说不清楚。
最好LZ是能贴出“跟MDK有关系”的证明,证明下其他编译器没有这个问题~

使用特权

评论回复
29
小班儿| | 2014-11-18 11:47 | 只看该作者
飘过,学习了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则