C语言变量在函数开头定义还是在用到时定义

    在C89中,函数块中的变量必须放在所有语句前面声明。

    在C99,函数块中的变量不必放在所有语句前面声明。  

    微软一直沿用C89,所以在VC++6.0,VS2008中,变量必须放在函数开头,以下代码就编译不过,但gcc可以。

void *mymemcpy(void* dst, const void* src, int size)
{
	/*检查参数的是否合理*/
	if(size<0)
	{
		printf("invalid count number!\n");
		return (void*)0;
	}
	if(src == NULL || dst == NULL)
	{
		printf("source or destination addr is NULL!\n");
		return (void*)0;
	}
	if(src == dst)
	{
		printf("source addr equal destination addr!\n");
		return (void*)0;
	}
	/*内存内容copy*/
	char* pdst = (char*)dst;
	const char *psrc = (const char*)src;
	while(size--)
	*pdst++ = *psrc++;
	return dst;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值