我有一个私有静态变量的类.main函数应该更改变量中的值,但即使我将main函数设置为类的朋友,编译器也会告诉我该变量是私有的,不能从main访问.
例:
ClassA.h:
namespace nameA{
class ClassA {
private:
static int varA;
public:
ClassA(){};
friend int main(void);
};
}
Run Code Online (Sandbox Code Playgroud)
ClassA.cpp:
namespace nameA{
int ClassA::varA = 0;
}
Run Code Online (Sandbox Code Playgroud)
主要:
int main(void){
ClassA::varA = 42; //ERROR
}
Run Code Online (Sandbox Code Playgroud)
我不知道"朋友"是否也允许访问静态成员,或者我是否必须找到另一种解决方案.
我有一个 STM32 BluePill 板(带有 8Mhz Quarz 的 STM32F103C8),并尝试上传一个用 LibOpenCM3 和 FreeRTOS 制作的小闪烁程序。但由于某种原因,FreeRTOS 在 vTaskStartScheduler() 中挂起,sys_tick_handler 也没有执行任何操作。
我没有使用调试器,只是在 sys_tick_handler 函数内放置了一个 gpio_reset ,并在 vTaskStartScheduler 调用之后测试代码是否被执行,但它似乎没有做任何事情,我不明白为什么。代码可以在这里找到:https ://gitlab.com/feldim2425/stm32-testing
更新:我用 OpenOCD 进行调试,发现它跳入了 Hard_fault_handler 更新 2:UsageFault-Status-Register 设置了 NOCP 位