C语言代码标注的相关问题

请问以下代码要如何写出易读的标注让代码便于别人理解

#include 
#include 
#include 
#include 
int wait_flag;
void stop();
main() {
        int pid1, pid2;
        signal(3,stop); // or signal(14,stop);
        while((pid1 = fork( )) == -1);
        if(pid1> 0) {
            while((pid2 = fork( )) == -1);
            if(pid2> 0) {
                wait_flag = 1;
                sleep(5);
                kill(pid1,16);
                kill(pid2,17);
                wait(0);
                wait(0);
                printf("\n Parent process is killed !!\n");
                exit(0);
            }
            else {
                wait_flag = 1;
                signal(17,stop);
                printf("\n Child process 2 is killed by parent !!\n");
                exit(0);
            }
        }
        else {
            wait_flag = 1;
            signal(16,stop);
            printf("\n Child process 1 is killed by parent !!\n");
            exit(0);
        }
}
void stop() {
wait_flag = 0;
    }

该回答引用GPTᴼᴾᴱᴺᴬᴵ
以下是对该代码的标注,以便于理解:

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>

int wait_flag; // 定义全局变量,表示是否等待子进程结束

void stop(); // 声明函数stop

main() { // 主函数
        int pid1, pid2; // 定义两个进程id
        signal(3,stop); // 注册信号处理函数stop,当进程收到信号3时,会调用stop函数
        while((pid1 = fork( )) == -1); // 创建第一个子进程
        if(pid1> 0) { // 父进程代码块
            while((pid2 = fork( )) == -1); // 创建第二个子进程
            if(pid2> 0) { // 父进程代码块
                wait_flag = 1; // 设置等待子进程结束的标志
                sleep(5); // 父进程休眠5秒
                kill(pid1,16); // 向第一个子进程发送16号信号
                kill(pid2,17); // 向第二个子进程发送17号信号
                wait(0); // 等待第一个子进程结束
                wait(0); // 等待第二个子进程结束
                printf("\n Parent process is killed !!\n"); // 输出提示信息
                exit(0); // 程序退出
            }
            else { // 第二个子进程代码块
                wait_flag = 1; // 设置等待子进程结束的标志
                signal(17,stop); // 注册信号处理函数stop,当进程收到信号17时,会调用stop函数
                printf("\n Child process 2 is killed by parent !!\n"); // 输出提示信息
                exit(0); // 程序退出
            }
        }
        else { // 第一个子进程代码块
            wait_flag = 1; // 设置等待子进程结束的标志
            signal(16,stop); // 注册信号处理函数stop,当进程收到信号16时,会调用stop函数
            printf("\n Child process 1 is killed by parent !!\n"); // 输出提示信息
            exit(0); // 程序退出
        }
}

void stop() { // 定义信号处理函数stop
    wait_flag = 0; // 设置等待子进程结束的标志为0
}

你的意思是写注释?你可以加上适当的注释,但是这些代码不加也很清楚