当前位置: 代码迷 >> 单片机 >> 编程规范的有关问题
  详细解决方案

编程规范的有关问题

热度:76   发布时间:2016-04-28 15:02:18.0
编程规范的问题
app.c 有main(),Task1.c中有任务Task1()      另外还有Task1.h
我的做法是:
app.c中 声明   extern  void Task1(void* p_arg);     //如果写成extern  static  void Task1(void* p_arg); 会报错  为什么?
Task1.h中没有声明 static void Task1(void* p_arg); //如果有的话会报错
Task1.h  有 #define Pin_Led_up     GPIO_Pin_0   供Task1.c使用
Task1.c中 #include "Task1.h"

请问这种写法有没有错误?新手↓
------解决方案--------------------
这个问题可以参考下Visual Stdio下的一些项目文件结构

我现在已经改成这样:
Task1.h中 声明   extern  void Task1(void* p_arg);     //如果写成extern  static  void Task1(void* p_arg); 会报错  为什么?
app.c 中 #include "Task1.h"
 Task1.h  有 #define Pin_Led_up     GPIO_Pin_0   供Task1.c使用
Task1.c中 #include "Task1.h"

请问这种写法有没有错误?

extern 可能会有问题,因为你这是告诉连接器Task1()在其他文件里面,但实际上还是在当前文件里

Task1.h中可以这样写

#ifndef _TASK1_H_
#define _TASK1_H_
void Task1(void* p_arg);


#endif


其他需要调用Task1()的文件里面加上 #include "task1.h" 就可以了.
app.c类似.
  相关解决方案