| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1163 人关注过本帖
标题:关于Util的问题
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 9楼 TonyDeng
1. 按你的讲解,那么那个32应该最好定义为一个可以临时变换的端口号/参数/文件配置?
   网上还有这个解释:
    一个很基本的概念
   比如
  #define PI 3.14
  PI就是硬编码的,因为编译后不能再修改了

 最后一句的理解应该是相对于PI  3.14是个硬性数,应该做灵活处理,而不是处理PI这个字符吧?

2. 匈牙利命名法是過時了,如果有C++的類作為前綴以及強類型檢查編譯器,無需再靠命名字符來識別變量的數據類型。
  那么现在的最佳方案是什么?

3. wchar_t能处理汉字吧.比如这么定义  wchar_t  hanzi[] = "李连杰";   hanzi[0] = '李'?  c语言中能使用wchar_t吗?


[ 本帖最后由 有容就大 于 2012-2-9 21:33 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-02-09 21:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.是的,方案有很多種,可以用參數,也可以不用。不用參數的做法,我貼過代碼,不重複,別人明白不明白有什麼用意我不管。
2.宏不是函數,最終是把3.14替換各處的PI字眼嵌在代碼中的,不存在PI這個變量。
3.現在用Pascal命名法就可以了。
4.是的,就是那樣,那是Windows系統內部固有的編碼方式(別的系統不是)。C99已經擴展出了wchar_t類型,C也是發展著的。


[ 本帖最后由 TonyDeng 于 2012-2-9 21:37 编辑 ]

授人以渔,不授人以鱼。
2012-02-09 21:34
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
去网上看了下 还有个骆驼命名法比较流行。现在知道怎么处理汉字数组啦。总之谢谢老大的讲解。

梅尚程荀
马谭杨奚







                                                       
2012-02-09 21:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
駱駝只是第一個字母是小寫,Pascal是每個單詞的首字母都大寫。前者是C#的推薦命名法。

授人以渔,不授人以鱼。
2012-02-09 21:48
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 14楼 TonyDeng
嗯,还有个问题。
代码:
程序代码:
#include <stdio.h>
#include <locale.h>

int  main( void )
{
    wchar_t p[2] = L"你好";
  
    setlocale(LC_ALL, "");
    wprintf(L"%c\n", p[0]);
    wprintf(L"%c\n", p[1]);

    return  0;
}
结果正确-->
图片附件: 游客没有浏览图片的权限,请 登录注册

但是有个警告:warning C4045: '`O}Y' : array bounds overflow。为什么?
有么有不使用setlocale(LC_ALL, "");的方法?

梅尚程荀
马谭杨奚







                                                       
2012-02-09 22:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這應是3個元素的數組,wchar_t p[3];
別忘了結束符。

不用那個設定也可以了,默認使用執行機器的Windows配置。

授人以渔,不授人以鱼。
2012-02-09 22:08
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-2-9 22:08:10的发言:

這應是3個元素的數組,wchar_t p[3];
別忘了結束符。

不用那個設定也可以了,默認使用執行機器的Windows配置。
這應是3個元素的數組,wchar_t p[3];
別忘了結束符。
改了 ,警告也没了。

不用那個設定也可以了,默認使用執行機器的Windows配置。
怎么设置啊, 是不是头文件也要变?

梅尚程荀
马谭杨奚







                                                       
2012-02-09 22:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把setlocale(LC_ALL, "");刪掉,不用的。有Windows.h就成,也不用那個locale.h頭。

授人以渔,不授人以鱼。
2012-02-09 22:12
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 18楼 TonyDeng
程序代码:
#include <stdio.h>
#include <windows.h>

int  main( void )
{
    wchar_t p[3] = L"你好";

 
    wprintf(L"%c\n", p[0]);
    wprintf(L"%c\n", p[1]);

    return  0;
}
这样运行结果只有个 press any key to continue.....

梅尚程荀
马谭杨奚







                                                       
2012-02-09 22:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你什麼時候能夠打印出'\0'字符?
L'\0'也一樣是0
何況你也沒有輸出p[2]

授人以渔,不授人以鱼。
2012-02-09 22:18
快速回复:关于Util的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044855 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved