在arduino的单独文件中包含函数
including functions in seperate file in arduino
菜鸟qn.
我使用的是 Arduino 1.6.5,我有类似下面的东西可以工作。
main.ino
#include "oldFunctions.h"
#define BLAHBLAH
setup(){
//....
}
loop(){
//....
}
void newFunctionA(void){
//....
}
oldFunctions.h。这是我随着时间的推移添加的文件,具有新的功能和内容。
void test(void){
newFunctionA();
}
这曾经在 Arduino 1.6.5 中工作,但我升级到 1.6.8,现在我收到错误消息说 newFunctionA 未在此范围内声明
有人可以帮忙吗?
弄乱文件然后希望编译器发挥一些魔力总是一个坏主意。我建议您按原样使用这些文件,因此
- 头文件(
*.h
、*.hpp
)应包含 class 定义(但不包含实现)、定义为 extern
的全局变量、函数原型。他们应该使用共同的ifndef...
来防止多重包含
- 源文件(
*.c
、*.cpp
、*.ino
)应包含实际的函数实现、方法实现和全局变量定义。
你不要避免使用这个,否则你会进入很多可能的麻烦。
在你的例子中,你应该有三个文件:
main.ino
#include "oldFunctions.h"
#define BLAHBLAH
setup(){
//....
}
loop(){
//....
}
void newFunctionA(void){
//....
}
oldFunctions.h
#ifndef OLD_FUNCTIONS_H
#define OLD_FUNCTIONS_H
void newFunctionA();
void test();
#endif
oldFunctions.cpp
#include "oldFunctions.h"
void test(void){
newFunctionA();
}
但是请注意,在 cpp 文件中,您不应使用在 main.ino
中定义的 BLAHBLAH
。如果需要,请将其移动到 oldfunctions.h
文件。
在 newFunctionA
中有一个新函数,您希望将其与旧函数分开,只需创建一个新的头文件并包含它即可。重要的是你不要依赖 arduino 加入源文件,因为这会导致意外行为。
菜鸟qn.
我使用的是 Arduino 1.6.5,我有类似下面的东西可以工作。
main.ino
#include "oldFunctions.h"
#define BLAHBLAH
setup(){
//....
}
loop(){
//....
}
void newFunctionA(void){
//....
}
oldFunctions.h。这是我随着时间的推移添加的文件,具有新的功能和内容。
void test(void){
newFunctionA();
}
这曾经在 Arduino 1.6.5 中工作,但我升级到 1.6.8,现在我收到错误消息说 newFunctionA 未在此范围内声明
有人可以帮忙吗?
弄乱文件然后希望编译器发挥一些魔力总是一个坏主意。我建议您按原样使用这些文件,因此
- 头文件(
*.h
、*.hpp
)应包含 class 定义(但不包含实现)、定义为extern
的全局变量、函数原型。他们应该使用共同的ifndef...
来防止多重包含 - 源文件(
*.c
、*.cpp
、*.ino
)应包含实际的函数实现、方法实现和全局变量定义。
你不要避免使用这个,否则你会进入很多可能的麻烦。
在你的例子中,你应该有三个文件:
main.ino
#include "oldFunctions.h"
#define BLAHBLAH
setup(){
//....
}
loop(){
//....
}
void newFunctionA(void){
//....
}
oldFunctions.h
#ifndef OLD_FUNCTIONS_H
#define OLD_FUNCTIONS_H
void newFunctionA();
void test();
#endif
oldFunctions.cpp
#include "oldFunctions.h"
void test(void){
newFunctionA();
}
但是请注意,在 cpp 文件中,您不应使用在 main.ino
中定义的 BLAHBLAH
。如果需要,请将其移动到 oldfunctions.h
文件。
在 newFunctionA
中有一个新函数,您希望将其与旧函数分开,只需创建一个新的头文件并包含它即可。重要的是你不要依赖 arduino 加入源文件,因为这会导致意外行为。