找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2964|回复: 10
收起左侧

请教C语言 RETURN用法

[复制链接]
ID:868042 发表于 2021-2-10 16:53 | 显示全部楼层 |阅读模式
請問那裡出錯??
#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;
        }
回复

使用道具 举报

ID:868042 发表于 2021-2-10 17:06 | 显示全部楼层
編程通過, 但模擬時出錯 stack over flow
AVR Simulator: Excessive stack overflow, stop sim
回复

使用道具 举报

ID:235200 发表于 2021-2-10 17:41 | 显示全部楼层
数据类型应该一致,否则结果不正确
回复

使用道具 举报

ID:702386 发表于 2021-2-10 18:18 | 显示全部楼层
int sq(int a)这义这个函数,int是一个没有定义过的关键字吧,试试换成unsigned int sq(unsigned int a)
回复

使用道具 举报

ID:319585 发表于 2021-2-10 18:26 来自触屏版 | 显示全部楼层
unsigned int c,然后return 一个unsigned int的数给int型的sq函数。
回复

使用道具 举报

ID:883242 发表于 2021-2-10 18:29 | 显示全部楼层
哪里都没有错。
回复

使用道具 举报

ID:390416 发表于 2021-2-10 19:07 | 显示全部楼层
16位的变量乘以16位的变量 最大值是4294967295,所以必须是32位存储变量,函数也必须是32位
回复

使用道具 举报

ID:275826 发表于 2021-2-10 19:36 | 显示全部楼层
没有错误
回复

使用道具 举报

ID:855897 发表于 2021-2-10 22:59 | 显示全部楼层
我这边用编译器加头文件#include <stdio.h> 是可以过的。
回复

使用道具 举报

ID:277550 发表于 2021-2-11 00:54 | 显示全部楼层
类型应该统一,使用int就统一用int,使用 unsigned int 就统一使用unsigned int。。。。。或者,在范围允许情况下,做强制转换。
回复

使用道具 举报

ID:868042 发表于 2021-2-11 22:03 | 显示全部楼层
改了数据类型一致,可以了,  謝謝各位 .
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表