关闭

论C++标准委员会制定的一条不合理的标准

标签: c++语言
2628人阅读 评论(14) 收藏 举报

论C++标准委员会制定的一条不合理的标准

C++标准委员会不让for后()中定义的变量在外边用,我觉的非常不合理
在我做的太极语言中是这样设计的,()中的名字注册进入首个含名字空间的母垣(垣的概念大家都知道了吧),中间如果经过了{}则要加序号标记。

for()中定义的变量让不让在外边用曾经是一个争议挺大的问题.在太极语言中是这样考虑的:单独从for本身考虑两方面的意见不好确定,把目光放向全局.就是看()中定义的变量是否要全区域可见.

在太极语言中讲究"做一件事情只要一句话",让紧密关联的代码能写在一句中.
比如下面的一个函数调用.
fc(&(int a));//原型为 void fc(int * p);
k=a;
所以必须让()中定义的变量全区域可见.

在C/C++中你却必须这样写,
int a;
fc(&a);
k=a;
违背了"紧密关联的代码能写在一句中"这个原则.


举具体例子对比一下:
太极语言:
FindFirstFile(pfindstr,&(WIN32_FIND_DATA wfd));

C/C++:
WIN32_FIND_DATA wfd;
FindFirstFile(pfindstr,&wfd);


太极语言:
m_edit1.GetWindowText(CString cstr);
m_edit2.SetWindowText(cstr);

C/C++:
CString cstr;
m_edit1.GetWindowText(cstr);
m_edit2.SetWindowText(cstr);


太极语言:
FindFirstFile(char * pfindstr="*.*",&(WIN32_FIND_DATA wfd));

C/C++:
char * pfindstr="*.*";
WIN32_FIND_DATA wfd;
FindFirstFile(pfindstr,&wfd);


从代码的可读性与直观性与可维护性上太极语言所采用的方式是比C/C++好的.
需要预定义的变量增多时这种表现更明显.必须让()中定义的变量全区域可见!
那么从形式连贯一致性角度考虑,也要让for()中定义的变量全区域可见!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:134109次
    • 积分:2350
    • 等级:
    • 排名:第15840名
    • 原创:46篇
    • 转载:29篇
    • 译文:0篇
    • 评论:515条
    最新评论