Should High Cohesion and Low Coupling be Emphasized in Embedded Software Written in C?

Should High Cohesion and Low Coupling be Emphasized in Embedded Software Written in C?

I am Lao Wen, an embedded engineer who loves learning.Follow me to become even better together! 1 – Principles Low coupling means that modules should exist as independently as possible. While some connection between modules is inevitable, the interfaces between them should be minimal and simple. Thus, high cohesion from the internal characteristics of each … Read more

Comprehensive Guide to C Language Structures: From Basics to Memory Layout

Comprehensive Guide to C Language Structures: From Basics to Memory Layout

Hello everyone, welcome to <span>LiXin Embedded</span>. In embedded development, structures are an indispensable tool. Compared to classes in object-oriented programming, C language structures are more like pure data collections without methods, making them simple and efficient. For embedded engineers, it is essential to not only use structures conveniently but also to understand their layout in … Read more

C Language Special: extern, volatile, and inline

C Language Special: extern, volatile, and inline

In the C language, <span>extern</span>, <span>volatile</span>, and <span>inline</span> are three widely used keywords, each related to cross-file variable declarations, compiler optimization control, and function inlining. Mastering their usage can effectively enhance code structure, stability, and performance. 1. extern (External Variable Declaration) <span>extern</span> is used to declare global variables or functions defined in other files, enabling … Read more

The Relationship Between Arrays and Pointers in C Language – Part Four

The Relationship Between Arrays and Pointers in C Language - Part Four

5.Why Create the Array Data Structure From the previous analysis, we can understand that the essence of an array name is a pointer. Since we already have the pointer data type, why create the array data type? Isn’t that redundant? Can we program normally without creating arrays? The answer is: Yes, it is indeed possible … Read more

Using the malloc Function for Dynamic Memory Allocation in C

Using the malloc Function for Dynamic Memory Allocation in C

Using the malloc Function for Dynamic Memory Allocation in C In C programming, memory management is an important topic, especially when dealing with memory that needs to be dynamically allocated. Dynamic memory allocation allows programs to request a specific amount of memory as needed, without having to declare the size of variables in advance. This … Read more

Embedded State Machine Programming – QP State Machine Framework

Embedded State Machine Programming - QP State Machine Framework

Content Source: Sun Wukong Seeking Knowledge Basic Terminology of State Machines Current State: Refers to the state currently being occupied. Condition: Also known as “event”, when a condition is met, it will trigger an action or execute a state transition. Action: The action executed after the condition is met. After the action is completed, it … Read more

Rewriting Examples of Modern X86 Assembly Language Programming in C Language and AT&T Assembly Format (Part 15)

Rewriting Examples of Modern X86 Assembly Language Programming in C Language and AT&T Assembly Format (Part 15)

1. Writing the C program ch03_05_01.c /* * This program constructs a structure TestStruct with members of different lengths. * It sums the structure members using both C functions and assembly functions to verify the correctness of the assembly code. * The focus is on the Pad8 member, which does not participate in calculations, but … Read more

C Language Daily Challenge No. 15: Implementing a String Replacement Function

C Language Daily Challenge No. 15: Implementing a String Replacement Function

📌 Problem Description Write a function str_replace that replaces the first occurrence of an old substring with a new substring in the given string, returning the modified new string. Requirements: Only a single replacement is required The returned new string must be dynamically allocated Example: Input: str="Hello World", old="World", new="C" Output: "Hello C" Difficulty: ⭐️ … Read more

Understanding the if Statement: A Deep Dive into C Language Control Structures

Understanding the if Statement: A Deep Dive into C Language Control Structures

Understanding the if Statement: A Deep Dive into C Language Control Structures In programming, control flow refers to a series of statements that determine the order of execution of a program. The <span>if</span> statement is one of the most fundamental and commonly used control structures in C language. It allows us to execute different blocks … Read more