免费观看电视剧网站,手机网站开发一个多少钱,wordpress子主题制作,网站建设龙华#x1f4e2;#xff1a;如果你也对机器人、人工智能感兴趣#xff0c;看来我们志同道合✨ #x1f4e2;#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 #x1f4e2;#xff1a;文章若有幸对你有帮助#xff0c;可点赞 #x1f44d;… 如果你也对机器人、人工智能感兴趣看来我们志同道合✨ 不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 文章若有幸对你有帮助可点赞 收藏 ⭐不迷路 内容若有错误敬请留言 指正原创文转载请注明出处 文章目录 volatile的使用方法__NOP__()是什么函数?#if 1 #endif volatile的使用方法 volatile的作用 当我们在使用C语言时volatile关键字用于告诉编译器不要对某个变量进行优化。它通常用于修饰那些可能被硬件设备、中断或其它线程修改的变量。 下面通过使用volatile关键字的示例代码进行说明
volatile int counter 0;
void incrementCounter() {counter;}int main() {printf(Initial counter value: %d\n, counter);incrementCounter();printf(Counter after increment: %d\n, counter);return 0;}代码解释 在上述代码中counter变量被声明为volatile int类型。这意味着编译器不会对counter进行任何优化以确保每次对counter的读取和修改都是直接从内存中进行而不是从寄存器或其它缓存中读取。 在一些特定的场景下例如在嵌入式系统中操作硬件寄存器或处理中断时使用volatile关键字非常重要。它确保我们在读取和修改变量时的可见性和一致性避免了编译器可能进行的优化从而保证了代码的正确性。 需要注意的是volatile关键字仅仅用于告诉编译器不要对变量进行优化它并不能解决所有的并发或多线程问题。对于需要实现同步和互斥的场景我们仍然需要使用适当的同步机制如互斥锁或原子操作来保证线程安全。 参考https://www.runoob.com/w3cnote/c-volatile-keyword.html NOP()是什么函数? NOP()是什么 __NOP() 是一个内联汇编指令用于在一些特定的嵌入式系统中执行空操作no operation相当于一个延时函数。 具体来说__NOP__() 是一个特殊的汇编指令它告诉处理器不执行任何操作即产生一个空的机器指令。这个指令通常用于延迟一段时间或调整代码的执行速度。 使用条件当使用_nop_()函数可理解为软件延时时必须在开头添加头文件#includeintrins.h 延时大小而_nop_()函数的空操作产生的时间与晶振有关用stc-isp软件自动给你计算出来的 代码示例 //100us
void Delay100us() //12.000MHz
{unsigned char i;_nop_();i 47;while (--i);
}#if 1 #endif #if 1 和 #endif 是条件编译的预处理指令。在这个示例中#if 1 表示始终为真的条件因为 1 代表真值。所以#if 1 后面的代码块将会被编译而 #endif 表示条件编译的结束。 可以使用条件编译来在编译时根据条件包含或排除一段代码。当条件为真时被包含在 #if 和 #endif 之间的代码将被编译当条件为假时这段代码将被忽略不会参与编译。 在这个简单的示例中#if 1 的条件为真所以包含在这个条件下的代码块将被编译。如果将条件改为 #if 0则条件为假#if 0 和 #endif 之间的代码块将被忽略不会参与编译。 条件编译可以用于在不同的情况下选择性地包含或排除代码例如根据不同的操作系统、平台或编译器选项进行编译配置。