读书人

函数名前有下划线是什么意思?比如_WS

发布时间: 2013-07-04 11:45:40 作者: rapoo

函数名前有下划线是什么意思?例如_WStrInsert
systme单元有很多 带下划线的函数,有的是一个下划线,有的是2个下划线,请问这类函数是做什么用的?
为什么无法直接使用?

例如 函数 procedure _WStrInsert(const Source: WideString; var Dest: WideString; Index: Integer);

怎样才能调用?
[解决办法]
这个问题说是问题也不是问题,因为很多都是由于历史原因造成的。C语言有很长时间就是自由发展的,iso标准出来之前已经有很多很多的实现版本了,这些版本里可能都实现了某些基本的函数,但是具体形式上有差别。为了保持兼容所以有些函数就避免用以前普遍用了的名字,而采取下划线名字作为标准函数名。

一般情况下,只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stroustup在《The C++ Programming Language》中告诫我们一般不要使用_或__打头的标志符,这也是一个编程风格的问题吧。
[解决办法]

引用:
这个问题说是问题也不是问题,因为很多都是由于历史原因造成的。C语言有很长时间就是自由发展的,iso标准出来之前已经有很多很多的实现版本了,这些版本里可能都实现了某些基本的函数,但是具体形式上有差别。为了保持兼容所以有些函数就避免用以前普遍用了的名字,而采取下划线名字作为标准函数名。

一般情况下,只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stroustup在《The C++ Programming Language》中告诫我们一般不要使用_或__打头的标志符,这也是一个编程风格的问题吧。


哥,这好像是C里面对这个下划线的解释吧,Delphi里面我也搞不清楚,你看system单元,里面很多都是声明的时候没带下划线,可下面函数体实现部分是带下划线的。。。
[解决办法]
其实就是个名字,没什么特别的.
只是开发商喜欢这样命名一些内部函数或者非标准的函数.
内部函数:System单元的带下划线的函数一般是系统内部调用的.我们无需手工去处理.
非标准函数:例如C++标准委员会动作比较慢,他们制定异常处理标准前微软就自己支持了异常处理了.__try,__catch.标准委员会制定出来的关键就是try和catch等.

[解决办法]
编译器内置函数,代码仅供参考。。它只是告诉你有这么个东西,但具体代码不一定都能实现,像system.Writeln

读书人网 >.NET

热点推荐