专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
今天在用VC6调试一个别人写的示例程序时,发现了这么一个错误:bool __cdecl std::isdigit(_E,const class std::locale &)' : expects 2 arguments 出错的代码: return std::isdigit(_expr[_pos]) != 0; bool (isdigit)(_E _C, const locale& _L)while (_pos _expr.length() && std::isdigit(_expr[_pos]) != 0) MSDN中 对isdigit的定义如下:templatec [阅读全文] [PDF]
左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 _stdcall是pascal程序的缺省调用方式,通常用于win32 api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。vc将函数编译后会在函数名前面加上下划线前缀,在函数名后加上\"@\"和参数的字节数。 2、c调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。 [阅读全文] [PDF]
1 共2条 分1页