共2条
1/1 1 跳转至页
问
我编写了两个C程序,放在同一个项目下.
这两个程序分别如下:
第一个是主程序,单独的一个C文件,命名为MAIN.C
该程序如下
main()
{
ADD(3);
}
第二个是加1程序,也是一个单独的C文件,命名为ADD.C
该程序如下
void ADD(char a)
{
a++;
}
单独编译每个程序时都能通过,可准备将两个文件连接的后生成HEX文件时出错,
由于我不懂英语,看不出是那里错误,好象是参数错误.
我不想在MAIN.C里使用#include<add.c>语句
有那位高手能指点我一下怎样才能将这两个文件连接起来生成HEX文件呢?
谢谢各位了!谢谢~~
我还试过如果将第二个函数的参数去掉,变为无参函数的话,在MAIN.C的文件中就可以成功调用并能生成HEX文件.这又是为什么呢??
谢谢!!!
答 1: 我顶一下,能给我举一个能传递参数的C的例子吗?不胜感激! 答 2: RE第一个写成这样
extern void add(char a);
void main(void)
{
add(3);
}
第二个文件不变,我试过了,可以编译成功 答 3: 楼上说的没错插一句:一般不会用#include<add.c>
而是,再做个文件add.h,
内容:
#ifndef __ADD_H_
#define __ADD_H_
void add(char a);
#endif
再在main.c中用#include "add.h" (建议:标准库用<>,当前程序专用的用"")
楼主还是找个别人的程序看看吧 答 4: 谢谢二位,我的问题现在解决了!
这两个程序分别如下:
第一个是主程序,单独的一个C文件,命名为MAIN.C
该程序如下
main()
{
ADD(3);
}
第二个是加1程序,也是一个单独的C文件,命名为ADD.C
该程序如下
void ADD(char a)
{
a++;
}
单独编译每个程序时都能通过,可准备将两个文件连接的后生成HEX文件时出错,
由于我不懂英语,看不出是那里错误,好象是参数错误.
我不想在MAIN.C里使用#include<add.c>语句
有那位高手能指点我一下怎样才能将这两个文件连接起来生成HEX文件呢?
谢谢各位了!谢谢~~
我还试过如果将第二个函数的参数去掉,变为无参函数的话,在MAIN.C的文件中就可以成功调用并能生成HEX文件.这又是为什么呢??
谢谢!!!
答 1: 我顶一下,能给我举一个能传递参数的C的例子吗?不胜感激! 答 2: RE第一个写成这样
extern void add(char a);
void main(void)
{
add(3);
}
第二个文件不变,我试过了,可以编译成功 答 3: 楼上说的没错插一句:一般不会用#include<add.c>
而是,再做个文件add.h,
内容:
#ifndef __ADD_H_
#define __ADD_H_
void add(char a);
#endif
再在main.c中用#include "add.h" (建议:标准库用<>,当前程序专用的用"")
楼主还是找个别人的程序看看吧 答 4: 谢谢二位,我的问题现在解决了!
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
| 三分钟快速上手搭建nRF Connect SDK开发环境(VSCode)被打赏¥25元 | |
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
我要赚赏金
