标题: 请教C语言 RETURN用法 [打印本页]

作者: room07    时间: 2021-2-10 16:53
标题: 请教C语言 RETURN用法
請問那裡出錯??
#include "iom16v.h"
#include <macros.h>

unsigned int i;

int sq(int a)
{
unsigned int c;
c=a*a;
return c;
}


void main(void)
    {
                i=sq(9);
                i=1;
                i=1;
        }

作者: room07    时间: 2021-2-10 17:06
編程通過, 但模擬時出錯 stack over flow
AVR Simulator: Excessive stack overflow, stop sim

作者: csmyldl    时间: 2021-2-10 17:41
数据类型应该一致,否则结果不正确
作者: zsw3721    时间: 2021-2-10 18:18
int sq(int a)这义这个函数,int是一个没有定义过的关键字吧,试试换成unsigned int sq(unsigned int a)
作者: liesnake    时间: 2021-2-10 18:26
unsigned int c,然后return 一个unsigned int的数给int型的sq函数。
作者: Hephaestus    时间: 2021-2-10 18:29
哪里都没有错。
作者: 人人学会单片机    时间: 2021-2-10 19:07
16位的变量乘以16位的变量 最大值是4294967295,所以必须是32位存储变量,函数也必须是32位
作者: tyrl800    时间: 2021-2-10 19:36
没有错误
作者: 游知行合一    时间: 2021-2-10 22:59
我这边用编译器加头文件#include <stdio.h> 是可以过的。
作者: devcang    时间: 2021-2-11 00:54
类型应该统一,使用int就统一用int,使用 unsigned int 就统一使用unsigned int。。。。。或者,在范围允许情况下,做强制转换。
作者: room07    时间: 2021-2-11 22:03
改了数据类型一致,可以了,  謝謝各位 .




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1