找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1419|回复: 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;
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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)
回复

使用道具 举报

5#
ID:319585 发表于 2021-2-10 18:26 来自手机 | 只看该作者
unsigned int c,然后return 一个unsigned int的数给int型的sq函数。
回复

使用道具 举报

6#
ID:883242 发表于 2021-2-10 18:29 | 只看该作者
哪里都没有错。
回复

使用道具 举报

7#
ID:390416 发表于 2021-2-10 19:07 | 只看该作者
16位的变量乘以16位的变量 最大值是4294967295,所以必须是32位存储变量,函数也必须是32位
回复

使用道具 举报

8#
ID:275826 发表于 2021-2-10 19:36 | 只看该作者
没有错误
回复

使用道具 举报

9#
ID:855897 发表于 2021-2-10 22:59 | 只看该作者
我这边用编译器加头文件#include <stdio.h> 是可以过的。
回复

使用道具 举报

10#
ID:277550 发表于 2021-2-11 00:54 | 只看该作者
类型应该统一,使用int就统一用int,使用 unsigned int 就统一使用unsigned int。。。。。或者,在范围允许情况下,做强制转换。
回复

使用道具 举报

11#
ID:868042 发表于 2021-2-11 22:03 | 只看该作者
改了数据类型一致,可以了,  謝謝各位 .
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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