
C编程技巧
_沧浪之水_
一个爱阅读的嵌入式菜鸟,不定期更新博客
展开
-
3-1 条件编译宏
如果 LS_OTA_EN 被定义为 1(即启用了 OTA 功能),则会定义两个宏 LS_OTAI 和 LS_OTAW,它们分别调用 ESP_LOGI 和 ESP_LOGW 函数,用于输出信息级别和警告级别的日志消息,并且传递给这些函数的所有参数 (__VA_ARGS__) 都会被转发到日志函数。而在未启用该功能时,则减少不必要的日志输出,甚至完全不输出某些类型的日志,以优化性能或减少日志文件大小。这个宏不受 LS_OTA_EN 的影响,总是定义为调用 ESP_LOGE 函数,用于输出错误级别的日志消息。原创 2024-12-04 14:51:14 · 173 阅读 · 0 评论 -
2-1 C指定成员初始化器
指定成员初始化器(designated initializers)是 C 语言中的一种语法特性,它允许你在初始化结构体或联合体时明确地为特定的成员赋值。这种方式不仅提高了代码的可读性,还增强了代码的维护性和灵活性,因为即使结构体或联合体的成员顺序发生变化,初始化代码仍然可以正确工作。原创 2024-12-04 14:34:45 · 389 阅读 · 0 评论 -
1-1 C语言编码技巧
/如果 CONFIG_INPUT_KEY_GPI 被定义,下面的代码会被执行#else#endif// 如果 CONFIG_INPUT_KEY_GPIO 被定义,下面的代码会被编译#endif在这个例子中,只有当宏被定义时,init_gpio_keys 函数才会被声明和调用。这种方式使得源代码可以适应多种不同的配置和平台需求,而不需要为每个可能的组合维护多个版本的源文件,这对于提高代码的可移植性和维护性非常有用。......原创 2024-12-04 14:07:55 · 304 阅读 · 0 评论