小编unk*_*n53的帖子

我怎么知道编译器是否会优化一个变量?

我是微控制器的新手。我已经阅读了很多关于volatilec 中变量的文章和文档。我的理解是,在使用时volatile我们告诉编译器不要cache优化变量。但是我仍然没有得到真正应该使用它的时间。
例如,假设我有一个简单的计数器和这样的 for 循环。

for(int i=0; i < blabla.length; i++) {
    //code here
}
Run Code Online (Sandbox Code Playgroud)

或者当我写这样一段简单的代码时

int i=1; 
int j=1;
printf("the sum is: %d\n" i+j);
Run Code Online (Sandbox Code Playgroud)

我从不关心此类示例的编译器优化。但是在许多范围内,如果变量未声明为volatile输出,则不会如预期的那样。我怎么知道我必须关心其他示例中的编译器优化?

c microcontroller

3
推荐指数
2
解决办法
112
查看次数

在 FreeRTOS Tasks 中实现功能是一个好习惯吗?

我是 FreeRTOS 和实时操作系统的新手。我想知道在 FreeRTOS 任务中实现功能是否是一种好的编程风格。例如

void displayTask(void* param) {

    static void Factorial (params) {
        // doSth
   }

   for(;;) {

       //call it here
       Factorial(params);
   }

}
Run Code Online (Sandbox Code Playgroud)

还是只是在任务之外实现它更好?,因为如果我有很多功能,我猜很难阅读代码。

c embedded freertos

0
推荐指数
1
解决办法
139
查看次数

标签 统计

c ×2

embedded ×1

freertos ×1

microcontroller ×1