คอมไพเลอร์และดีบักเกอร์ C ออนไลน์

ดีบัก C ด้วย breakpoint ตัวแปร และการทำงานทีละขั้นของ GDB ในโหมดเซิร์ฟเวอร์

🚀 1,150,969 การดำเนินการทั้งหมด (52,811 ในเดือนนี้)

Udemy Logo 🎯 คอร์ส C ที่เหมาะกับคุณโดยเฉพาะ

กำลังโหลด...

💡 กำลังมองหาการพัฒนาทักษะของคุณหรือไม่? หลักสูตรเหล่านี้อาจช่วยได้ ลองดูในขณะที่โมเดล AI ของเราประมวลผลคำขอของคุณ

เลือกตามหัวข้อ

เรียน C และ C++ ควบคู่กันด้วยโค้ดจริง output โมเดลหน่วยความจำ โครงสร้างข้อมูล อัลกอริทึม และ C++ สมัยใหม่

ตัวอย่าง C/C++ →

🧩 เกี่ยวกับตัวรัน C ออนไลน์นี้

CodeUtility C Executor ช่วยให้คุณเขียนและรันโปรแกรม C ได้โดยตรงในเบราว์เซอร์ของคุณ - ไม่ต้องติดตั้งหรือเซ็ตอัพคอมไพเลอร์ มันทำงานบน sandbox ที่ปลอดภัยและรองรับมาตรฐาน C จริงๆ รวมถึง C89, C99, C11 และเวอร์ชันล่าสุด

เครื่องมือนี้ใช้คอมไพเลอร์ C จริงที่รันอยู่บนคลาวด์เพื่อคอมไพล์และรันโค้ดของคุณ ให้ผลลัพธ์เหมือนสภาพแวดล้อมจริง คุณสามารถทดสอบโค้ดสั้นๆ เรียนรู้ไวยากรณ์ หรือฝึกเขียนโปรแกรมเต็มรูปแบบที่มีอินพุตและเอาต์พุตได้อย่างง่ายดาย

เครื่องมือนี้ถูกออกแบบมาเพื่อช่วยผู้เรียนและนักพัฒนาให้ทดลองพื้นฐานของ C ได้อย่างรวดเร็ว - เช่น ชนิดข้อมูล, พอยน์เตอร์, ลูป, ฟังก์ชัน, อาเรย์ และสตรักเจอร์ - โดยไม่ต้องติดตั้งคอมไพเลอร์หรือ IDE ใดๆ

มากกว่าเครื่องมือรันโค้ด

ใช้ตัวแก้ไขหลายไฟล์ เทอร์มินัลประมวลผลแบบแยกส่วน ไลบรารีเฉพาะรันไทม์ พื้นที่ทำงานถาวร การแชร์ และการทำงานร่วมกันแบบเรียลไทม์ได้จากตัวประมวลผลเดียวกัน

วิธีใช้ตัวประมวลผลนี้

เลือกรันไทม์ เปิดหรือสร้างไฟล์ เขียนโค้ด แล้วเลือกเรียกใช้ ผลลัพธ์จะแสดงในเทอร์มินัล ส่วนผู้ใช้ที่ลงชื่อเข้าใช้สามารถเก็บไฟล์ในพื้นที่ทำงาน ติดตั้งไลบรารี และทำงานร่วมกันผ่านการแชร์ได้

  1. เลือกเวอร์ชันแล้วแก้ไขไฟล์ปัจจุบัน หรือเปิดไฟล์อื่นในพื้นที่ทำงาน
  2. เรียกใช้โค้ด ป้อนข้อมูลในเทอร์มินัลเมื่อระบบร้องขอ และตรวจสอบประวัติการเรียกใช้ที่บันทึกไว้
  3. ใช้ไลบรารี เครื่องมือพื้นที่ทำงาน การแชร์ และแชท เมื่องานของคุณต้องใช้โค้ดมากกว่าหนึ่งส่วน

💡 พื้นฐาน C และตัวอย่างที่คุณลองได้ด้านบน

1. การประกาศตัวแปรและค่าคงที่

C ต้องการให้คุณระบุชนิดของตัวแปรทุกตัว ใช้ #define หรือ const เพื่อกำหนดค่าที่อ่านได้อย่างเดียว

int age = 30;
double pi = 3.14159;
char grade = 'A';
char name[] = "Alice";
bool isActive = 1; // จริง

// ค่าคงที่
#define MAX_USERS 100
const char* COMPANY = "CodeUtility";

2. คำสั่งเงื่อนไข (if / switch)

ใช้ if, else if และ switch สำหรับการตัดสินใจ

int x = 2;
if (x == 1) {
    printf("หนึ่ง\n");
} else if (x == 2) {
    printf("สอง\n");
} else {
    printf("อื่นๆ\n");
}

switch (x) {
    case 1:
        printf("หนึ่ง\n");
        break;
    case 2:
        printf("สอง\n");
        break;
    default:
        printf("อื่นๆ\n");
}

3. ลูป

ใช้ for, while และ do-while สำหรับการทำซ้ำ

for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

int n = 3;
while (n > 0) {
    printf("%d\n", n);
    n--;
}

4. อาเรย์

อาเรย์เก็บองค์ประกอบหลายตัวที่มีชนิดเดียวกัน

int numbers[3] = {10, 20, 30};
printf("%d\n", numbers[1]);

5. Struct

struct ช่วยจัดกลุ่มข้อมูลที่เกี่ยวข้องกัน

struct Person {
    char name[50];
    int age;
};

struct Person p = {"Alice", 30};
printf("%s อายุ %d ปี\n", p.name, p.age);

6. อินพุต/เอาต์พุตผ่านคอนโซล

ใช้ printf และ scanf สำหรับ I/O บนคอนโซล

char name[50];
printf("กรอกชื่อของคุณ: ");
scanf("%s", name);
printf("สวัสดี, %s\n", name);

7. ฟังก์ชัน

ฟังก์ชันช่วยห่อหุ้มลอจิกที่นำกลับมาใช้ซ้ำได้ ระบุชนิดค่าที่ส่งกลับ ชื่อ และพารามิเตอร์

int add(int a, int b) {
    return a + b;
}

printf("%d\n", add(3, 4));

8. พอยน์เตอร์

ใช้พอยน์เตอร์เพื่อเก็บที่อยู่หน่วยความจำและจัดการข้อมูลทางอ้อม

int x = 10;
int* ptr = &x;

printf("ค่า x: %d\n", x);
printf("ที่อยู่ของ x: %p\n", ptr);
printf("ค่าจากพอยน์เตอร์: %d\n", *ptr);

*ptr = 20;
printf("ค่า x ที่อัปเดต: %d\n", x);

9. การทำงานกับไฟล์ (File I/O)

ใช้ fopen, fprintf, fscanf และ fclose สำหรับการทำงานกับไฟล์

FILE* file = fopen("file.txt", "w");
fprintf(file, "สวัสดีไฟล์");
fclose(file);

char line[100];
file = fopen("file.txt", "r");
fgets(line, sizeof(line), file);
printf("%s", line);
fclose(file);

10. การจัดการสตริง

ใช้ฟังก์ชันจาก <string.h> เช่น strlen, strcpy และ strcmp.

#include <string.h>

char text[] = "สวัสดี";
char copy[10];

strcpy(copy, text);
printf("ความยาว: %lu\n", strlen(copy));
printf("เปรียบเทียบ: %d\n", strcmp(copy, "สวัสดี"));

11. หน่วยความจำแบบไดนามิก

ใช้ malloc และ free สำหรับการจัดสรรหน่วยความจำบนฮีป

int* nums = (int*) malloc(3 * sizeof(int));
nums[0] = 1; nums[1] = 2; nums[2] = 3;

for (int i = 0; i < 3; i++) {
    printf("%d ", nums[i]);
}

free(nums);

🐞 วิธีดีบักโค้ด %{language} ออนไลน์

ใช้ดีบักเกอร์ %{language} ออนไลน์เพื่อค้นหาข้อผิดพลาด runtime และ logic โดยไม่ต้องติดตั้งคอมไพเลอร์หรือ IDE โหมดเซิร์ฟเวอร์จะคอมไพล์พร้อม debug symbols และรันด้วย GDB

  1. ตั้ง breakpoint ข้างหมายเลขบรรทัด
  2. เลือก Debug เพื่อคอมไพล์และหยุดที่ breakpoint แรก
  3. ตรวจสอบบรรทัด call stack และตัวแปร
  4. ใช้ Continue, Step Over, Step Into หรือ Step Out
  5. เลือก Stop เพื่อจบการดีบัก

เริ่มจากตัวอย่างขนาดเล็กที่ทำให้เกิดปัญหาได้ และตั้ง breakpoint ก่อนพฤติกรรมที่ไม่คาดคิด