c程序的变量定义必须在所有函数之前?!
用vc6新建了一个win32的控制台程序,调试一个直接插入排序的小程序,文件定义为.c文件,而不是一般使用的.cpp文件,代码段如下:
#include <stdio.h>
void inst(int* x,int n)
{
int i,j,t;
for(i=1; i<n; i++) /* i表示插入次数,共进行n-1次插入*/
{
t = x[i];
for(j=i-1; j>=0; j--) /* 寻找要插入t的位置*/
if(t < x[j]) /* 后移,空出位置*/
x[j+1] = x[j];
else
break; /* 找到位置时,退出循环*/
x[j+1] = t; /* 直接插入*/
}
return;
}
void main()
{
int a[10]={5,6,4,3,0,7,2,1,9,8};
inst(a,10);
for (int i=0;i<10;i++)
{
printf("a[%d]=%d \n",i,a[i]);
}
}
编译不通过,但是将文件后缀名改成.cpp就能运行通过。
最后发现将最后for函数体中的i的变量的定义移至inst(a,10)语句之前就能正常编译,看来c程序的变量定义必须在所有函数之前?!
相关文档:
Objective C 2.0 简明教程 (5) 属性(Property)
作者:Administrator
周六, 2009年 03月 28日 07:47
Objective C 2.0 为我们提供了property。它大大简化了我们创建数据成员读写函数的过程,更为关键的是它提供了一种更为简洁,易于理解的方式来访问数据成员。 ......
以下是几个棘手的
C 问题, 很难做, 看看自己会做几个?
How do you write a program which produces its own source code as its output?
How can I find the day of the week given the date?
Why doesn’t C have nested functions?
What is the most efficient way to count the num ......
C/C++语言实现动态数组
C数组的小问题
这里说的动态数组是可以根据需要动态增长占用内存的数组,比如程序初始分配了100个元素,可是运行了一段时间后区区100个空间不能满足了,现在需要400个,怎么办呢;那肯定需要再额外分配300个。
C语言有realloc()函数来解决空间 ......
今天在VS2005调试一个C# C/S程序,当通过RFC与SAP连接时间过长时,出现此错误,在网上找到解决办法。
VS2008上的一个程序,通过Oracle.DataAccess.dll执行drop user
cascade操作,我在sqlplus执行此操作大约需要一分钟左右时间,当我在VS2008中debug启动此程序时,一直接收到
“ContextSwitchDeadlock is detected& ......
http://demonstyle.blog.163.com/blog/static/13143429020091010112159/
C/C++ 宏详解
ic/c++ 2009-11-10 01:12:15 阅读18 评论0 字号:大中小
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有
一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型 ......