免费注册 查看新帖 |

Chinaunix

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

垃圾代码分析——C语言二维数组范例 [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
61 [报告]
发表于 2012-04-09 13:58 |只看该作者
回复 51# hbmhalley

T a[N];  没有初始化,是不确定值。
T a[N] = {x}; 以x初始化a[0], 其余的以0值初始化。

如果目的是想全都按0值初始化:
T a[N] = {}; 是语法错误……
于是只能T a[N] = {0}; 了……

论坛徽章:
0
62 [报告]
发表于 2012-04-09 13:58 |只看该作者
隆重向大家推荐,既能不损失效率,又能防御性的全新bzero闪亮登场!

  1. #ifdef _DEBUG
  2. #        define haisini_bzero(ptr,len)        memset(ptr,0,len)
  3. #else
  4. #        define haisini_bzero(ptr,len)
  5. #endif
复制代码

论坛徽章:
0
63 [报告]
发表于 2012-04-09 14:01 |只看该作者
OwnWaterloo 发表于 2012-04-09 13:58
回复 51# hbmhalley

T a[N] = {}; 是语法错误……


为啥 ?? 明明很正常??

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
64 [报告]
发表于 2012-04-09 14:04 |只看该作者
回复 63# hbmhalley

正常?  gcc么?  你加个-pedantic看看……

论坛徽章:
0
65 [报告]
发表于 2012-04-09 14:05 |只看该作者
-pedantic_百度词典
pedantic [pɪ'dæntɪk]
[词典释义]

a. 1. 卖弄学问的 2. 学究式的,迂腐的
[网络释义]

1.迂腐的, 学究式的 2.学究式的,卖弄学问的 3.书生气的

论坛徽章:
0
66 [报告]
发表于 2012-04-09 14:08 |只看该作者
回复 64# OwnWaterloo


    我擦擦擦 - -..真伲码形象的一个参数

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
67 [报告]
发表于 2012-04-09 14:13 |只看该作者
回复 66# hbmhalley

这参数的名字是为了讽刺……
但这确实是gcc的一个扩展, T a[N] = {}; 在cl下(按C语言)就编译不过去……
如果不想让代码与gcc抱团,就要注意这点……

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
68 [报告]
发表于 2012-04-09 15:07 |只看该作者
一个好玩的小程序:

static char s_temp[1536][1048576];//别用[2048][1048576],别问我为什么,尽管我的笔记本有8G内存

int main(int argc, char *argv[])
{
    int    i;
    for(i = 0; i < 1536; i++) {
        bzero(s_temp[i], 1048576);
        sleep(1);
    }
    exit(EXIT_SUCCESS);
}

编译运行这个程序,然后用top观察这个程序的内存占用
就明白“//申请静态内存”的由来了

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
69 [报告]
发表于 2012-04-09 15:18 |只看该作者
本帖最后由 OwnWaterloo 于 2012-04-09 15:19 编辑

这个程序一点都不好玩。
别问我为什么,尽管我完全明白你想用这个程序表达什么。
因为我学不会用一个错误去掩盖另一个错误这种思考回路

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
70 [报告]
发表于 2012-04-09 15:21 |只看该作者
AD8018 发表于 2012-04-09 13:58
隆重向大家推荐,既能不损失效率,又能防御性的全新bzero闪亮登场!


我把bzero()注释成“申请静态内存”是有用意的
别人一般都是malloc一块内存来用,我的程序先把物理内存抢到手再说,哪管别人洪水滔天
物理内存没了就去爬SWAP吧,我先用了爽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP