函数名前有下划线是什么意思?例如_WStrInsert

k39k39 2013-05-27 10:37:34
systme单元有很多 带下划线的函数,有的是一个下划线,有的是2个下划线,请问这类函数是做什么用的?
为什么无法直接使用?

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

怎样才能调用?
...全文
1702 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
k39k39 2013-05-28
  • 打赏
  • 举报
回复
感谢各位的解答
sololie 2013-05-27
  • 打赏
  • 举报
回复
和1楼说得差不多,没必要太在意
hsfzxjy 2013-05-27
  • 打赏
  • 举报
回复
编译器内置函数,代码仅供参考。。它只是告诉你有这么个东西,但具体代码不一定都能实现,像system.Writeln
武稀松 2013-05-27
  • 打赏
  • 举报
回复
其实就是个名字,没什么特别的. 只是开发商喜欢这样命名一些内部函数或者非标准的函数. 内部函数:System单元的带下划线的函数一般是系统内部调用的.我们无需手工去处理. 非标准函数:例如C++标准委员会动作比较慢,他们制定异常处理标准前微软就自己支持了异常处理了.__try,__catch.标准委员会制定出来的关键就是try和catch等.
feiba7288 2013-05-27
  • 打赏
  • 举报
回复
Sorry,我说错了,是声明和实现都是带下划线,可调用的时候是不用下划线才行,如函数New。
引用 楼主 k39k39 的回复:
systme单元有很多 带下划线的函数,有的是一个下划线,有的是2个下划线,请问这类函数是做什么用的? 为什么无法直接使用? 例如 函数 procedure _WStrInsert(const Source: WideString; var Dest: WideString; Index: Integer); 怎样才能调用?
楼主,你不带下划线调用试下,应该是可以的。
feiba7288 2013-05-27
  • 打赏
  • 举报
回复
引用 1 楼 mysterx 的回复:
这个问题说是问题也不是问题,因为很多都是由于历史原因造成的。C语言有很长时间就是自由发展的,iso标准出来之前已经有很多很多的实现版本了,这些版本里可能都实现了某些基本的函数,但是具体形式上有差别。为了保持兼容所以有些函数就避免用以前普遍用了的名字,而采取下划线名字作为标准函数名。 一般情况下,只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stroustup在《The C++ Programming Language》中告诫我们一般不要使用_或__打头的标志符,这也是一个编程风格的问题吧。
哥,这好像是C里面对这个下划线的解释吧,Delphi里面我也搞不清楚,你看system单元,里面很多都是声明的时候没带下划线,可下面函数体实现部分是带下划线的。。。
  • 打赏
  • 举报
回复
这个问题说是问题也不是问题,因为很多都是由于历史原因造成的。C语言有很长时间就是自由发展的,iso标准出来之前已经有很多很多的实现版本了,这些版本里可能都实现了某些基本的函数,但是具体形式上有差别。为了保持兼容所以有些函数就避免用以前普遍用了的名字,而采取下划线名字作为标准函数名。 一般情况下,只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stroustup在《The C++ Programming Language》中告诫我们一般不要使用_或__打头的标志符,这也是一个编程风格的问题吧。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧