在下是变成菜鸟,那位大侠能帮忙看看这个哪错了(vc中)?

来自:    更新日期:早些时候
VC++文件错误,我是菜鸟。~

#include


void main()
{
printf("This is a C program
");
printf("I'm Chen Ce
");
getchar();
}

首先看MSDN里给出的解释

CALLBACK
·Use in place of FAR PASCAL in application callback routines such as window procedures and dialog procedures.

再看看到底这两个宏的内容是什么吧

VC:WINDEF.h
#define CALLBACK PASCAL //=_pascal,VC已经不支持直接使用_pascal了
#define WINAPI CDECL //=_cdecl

BCB:windef.h
#define CALLBACK __stdcall
#define WINAPI __stdcall

引出了cdecl stdcall等一些可能很少见的关键字

那么cdecl、pascal、stdcall、fastcall等修饰符号到底什么意思呢?
非常简单,就是关于堆栈的一些说明,首先是函数参数压栈顺序,其次是
压入堆栈的内容由谁来清除,调用者还是函数自己?
这些开关用来告诉编译器产生什么样的汇编代码。

下面把区别列表如下:

Directive Parameter order Clean-up Passes parameters in registers?
register Left-to-right Routine Yes
pascal Left-to-right Routine No
cdecl Right-to-left Caller No
stdcall Right-to-left Routine No
safecall Right-to-left Routine No

简单说明:

__cdecl是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用 __cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。__cdecl可以写成_cdecl。
__stdcall调用约定用于调用Win32 API函数。采用__stdcal约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。__stdcall可以写成_stdcall。
__fastcall约定用于对性能要求非常高的场合。__fastcall约定将函数的从左边开始的两个大小不大于4个字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的堆栈。__fastcall可以写成_fastcall。


·特别说明
1. 在默认情况下,采用__cdecl方式,因此可以省略.
2. WINAPI一般用于修饰动态链接库中导出函数
3. CALLBACK仅用于修饰回调函数
4. 你可能已经发现,VC下和BCB下对WINAPI的定义不同,那么你至少理解了
为什么不能直接从BCB下调用VC的dll的一个原因了。
参考资料:http://bbs.xml.org.cn/dispbbs.asp?boardid=61&id=27018

#include <stdio.h>
#define N 10000//数组最大长度为10000
void CompactIntegers();

void main()
{
printf("这个程序用以删除数组中所有值为零的元素得到新的数组。\n");
CompactIntegers();
return;
}
void CompactIntegers()
{
int i, k;
static int n;
int a[N];
printf("请输入要输入的数字个数:\n");//你得让用户输入数据呀
scanf("%d", &n);
for(i=0; i <n; i++)
{
printf("请输入要第%d个数字:",i+1);
scanf("%d", &a[i]);
}
printf("删除0之前的数组为:\n");
for(i=0; i <n; i++)
{
printf("%d ", a[i]);
}
printf("\n");

printf("删除0之后的数组为:\n");
for(i=0;i <n; i++)
{
if(a[i] == 0)
{
n--;
a[i]=a[n];
a[n]=0;
}
}
for(i=0; i <n; i++)
printf("%d, ", a[i]);
printf("\n");
}


在下是变成菜鸟,那位大侠能帮忙看看这个哪错了(vc中)?视频

相关评论:
  • 18488532798在下是变成菜鸟,那位大侠能帮忙看看这个哪错了(vc中)?
    林湛琪define N 10000\/\/数组最大长度为10000 void CompactIntegers();void main(){ printf("这个程序用以删除数组中所有值为零的元素得到新的数组。\\n");CompactIntegers();return;} void CompactIntegers(){ int i, k;static int n;int a[N];printf("请输入要输入的数字个数:\\n");\/\/你得让用...

  • 18488532798陋室铭搞笑仿写
    林湛琪室不在"超”,PC则灵,钱不在多,"奔四'则名.斯是陋室,电脑先行."太狠'盖茨利,"DOS'入眼轻.谈笑有"WINDOWS',往来"伯君'.可以调"伊妹(E-MAIL)',阅尽经.有CD之悦耳,无抄写之手疼.忘却别墅梦,气煞阿房宫.张子云;何陋之有? 国不在大,技高成名,人不在多,参与就行.斯是奥运,众星如云.队员现绝技,...

  • 18488532798陋室铭全部仿写
    林湛琪室不在"超”,PC则灵,钱不在多,"奔四'则名.斯是陋室,电脑先行."太狠'盖茨利,"DOS'入眼轻.谈笑有"WINDOWS',往来"伯君'.可以调"伊妹(E-MAIL)',阅尽经.有CD之悦耳,无抄写之手疼.忘却别墅梦,气煞阿房宫.张子云;何陋之有? 国不在大,技高成名,人不在多,参与就行.斯是奥运,众星如云.队员现绝技,...

  • 18488532798牧场物语矿石镇的伙伴(女孩版)攻略
    林湛琪以牛奶为例,最大罐的200块,加工成乳酪之后就变成500块. 前提是必须到冶练屋去订做沙拉酱机,乳酪机毛线机. 条件是牲畜小屋必须增筑过,还有必须得到一种稀奇的金属. 这个金属是蓝色菱形的,只有在冬天挖得到 里山的湖到了冬天会结冰,就可以走到湖中的小岛. 进去之后可以挖矿,幸运的话不但可以挖到蓝色金属...

  • 18488532798“大虾”和“菜鸟”都是什么意思?
    林湛琪大虾是相对于菜鸟的一个名词 大虾是指那些善于应用网络,具有一定网络技术水平的人。大虾不同于黑客,不具有攻击性;一般来讲,大虾的的网龄都比较长,多见于论坛中,当新手遇到问题时常常现身帮忙。大虾:不会吧?很简单的啊。菜鸟:没错,a-l-t-c+c-t-r-l+d-e-l……不过,先请问一下,要...

  • 18488532798对于电脑呢你可是个(菜鸟)我才是个(大虾)呢!中的菜鸟和大虾啥意思?
    林湛琪【菜鸟】称电脑或网络水平低或操作不熟练的人。相对于“老鸟”。 【大虾】“大侠”的谐音,有戏谑意。一说网络高手经常伏案工作,弓着背,犹如大虾

  • 18488532798有什么武侠电视剧男主角从开始时一个菜鸟但是用几年就练成绝世高手的...
    林湛琪推荐你看一看《倚天屠龙记》内容简介:相传为了保卫襄阳城,杨过将自己的玄铁剑赠与郭靖黄蓉铸成倚天剑与屠龙刀,江湖相传得刀与剑者即可号令江湖,整个武林为之疯狂,张无忌的父母张翠山和殷素素因无意中卷入屠龙刀而起的江湖纷争,与金毛狮王谢逊一同被迫流落至极北大洋中的一个荒岛——冰火岛,在那儿生...

  • 18488532798菜鸟的网络语的解释
    林湛琪引申到人,对于某些事务操作不熟悉或是刚刚进入某些圈子的人都会称做菜鸟。菜鸟补充老鸟,即与菜鸟相对应的网络名称,指的是在某方面(一般指与计算机有关的)水平较高的人。通常这些人拥有较为完善的专业知识和丰富的经验。大虾,谐音自大侠,形容网络高手,英文中的对应词是knowbie,表示a knowledgeable ...

  • 18488532798菜鸟是什么意思
    林湛琪【大侠】指电脑或网络高手。【东东】即东西,一些网民故意将“东西”写成“东东”,有谐趣意。【飞鸟】称有一定经验,能较为熟练使用网络或操作电脑的人,其水平介于“菜鸟”和“老鸟”之间,比“中鸟”高。【灌水】指在论坛等处张贴发表一些尽是无用信息的帖子。【果酱】“过奖”的谐音。【烘培鸡】...

  • 18488532798藏族女歌手是谁,请大侠帮一下菜鸟,谢谢。我很喜欢她的歌。
    林湛琪不是藏族女歌,她叫龚玥,艺名小月

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网