Pertanyaan yang diberi tag «c»

C adalah bahasa pemrograman tujuan umum yang digunakan untuk pemrograman sistem (OS dan tertanam), perpustakaan, game, dan lintas-platform. Tag ini harus digunakan dengan pertanyaan umum tentang bahasa C, sebagaimana didefinisikan dalam standar ISO 9899 (versi terbaru, 9899: 2018, kecuali ditentukan lain - juga tag permintaan versi khusus dengan c89, c99, c11, dll). C berbeda dari C ++ dan tidak boleh digabungkan dengan tag C ++ tanpa alasan yang rasional.

4
Bagaimana cara membuat daftar file dalam direktori dalam program C?
Saya mencoba menulis server ftp di Linux. Dalam hal ini bagaimana saya dapat membuat daftar file dalam direktori pada terminal dengan program C? Mungkin saya dapat menggunakan fungsi exec untuk menjalankan perintah find tetapi saya ingin nama file sebagai string untuk mengirim program klien. Bagaimana saya bisa melakukan ini? Terima …
91 c  linux 

7
Menggunakan lanjutkan dalam pernyataan sakelar
Saya ingin melompat dari tengah switchpernyataan, ke pernyataan loop dalam kode berikut: while (something = get_something()) { switch (something) { case A: case B: break; default: // get another something and try again continue; } // do something for a handled something do_something(); } Apakah ini cara yang valid untuk …

8
Apakah mungkin untuk menginisialisasi pointer C ke NULL?
Saya telah menulis hal-hal seperti char *x=NULL; dengan asumsi itu char *x=2; akan membuat charpointer ke alamat 2. Tapi, dalam Tutorial Pemrograman GNU C dikatakan bahwa int *my_int_ptr = 2;menyimpan nilai integer 2ke alamat acak apa pun my_int_ptrsaat dialokasikan. Ini sepertinya menyiratkan bahwa saya sendiri char *x=NULLmenetapkan apa pun nilai …


2
Apa ini (( ))?
Saat menelusuri kode sumber kompilator gcc (gcc / c-family / c-pragma.c) saya melihat: typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; dan terlepas dari banyaknya tahun pemrograman C di belakang saya, bagian-bagian ini: (())sama sekali belum saya ketahui. Bisakah seseorang menjelaskan apa yang …
90 c++  c 

1
Apa yang membuat Java lebih mudah diurai daripada C?
Saya mengetahui fakta bahwa tata bahasa C dan C ++ peka konteks , dan khususnya Anda memerlukan "retasan lexer" di C. Di sisi lain, saya mendapat kesan bahwa Anda dapat mengurai Java hanya dengan 2 token prospek, meskipun terdapat banyak kesamaan antara kedua bahasa. Apa yang harus Anda ubah tentang …
90 java  c  parsing  grammar 


5
Bagaimana membuat backtrace () / backtrace_symbols () mencetak nama fungsi?
Khusus Linux backtrace()dan backtrace_symbols()memungkinkan Anda membuat jejak panggilan program. Namun, itu hanya mencetak alamat fungsi, bukan nama mereka untuk program saya. Bagaimana saya bisa membuatnya mencetak nama fungsi juga? Saya sudah mencoba menyusun program dengan -gjuga -ggdb. Kasus uji di bawah hanya mencetak ini: LATAR BELAKANG ------------ ./a.out () [0x8048616] …
90 c  linux  debugging  backtrace 

12
C Manajemen Memori
Saya selalu mendengar bahwa di C Anda harus benar-benar memperhatikan bagaimana Anda mengelola memori. Dan saya masih mulai belajar C, tapi sejauh ini, saya tidak perlu melakukan pengelolaan memori sama sekali. Saya selalu membayangkan harus melepaskan variabel dan melakukan segala macam hal yang buruk. Tapi sepertinya bukan itu masalahnya. Dapatkah …
90 c  memory 

5
gdb: “Tidak ada tabel simbol yang dimuat”
Saya terus mendapatkan pesan kesalahan ini ketika mencoba menambahkan breakpoint di gdb. Saya telah menggunakan perintah ini untuk mengkompilasi: gcc -g main.c utmpib2.c -o main.o and: cc -g main.c utmpib2.c -o main.o and also: g++ -g main.c utmpib2.c -o main.o Saya juga mencoba "-ggdb" daripada "-g" dan saya masih mendapatkan …
90 c  gdb 


3
Gabungkan int ke string menggunakan C Preprocessor
Saya mencoba untuk mencari tahu bagaimana saya bisa menggabungkan #define'd int ke #define' d string menggunakan C Preprocessor. Kompiler saya adalah GCC 4.1 di CentOS 5. Solusinya juga harus berfungsi untuk MinGW. Saya ingin menambahkan nomor versi ke string, tetapi satu-satunya cara agar saya dapat berfungsi adalah membuat salinan nomor …


6
Apakah parser GCC dan Clang benar-benar ditulis tangan?
Tampaknya GCC dan LLVM-Clang menggunakan pengurai keturunan rekursif tulisan tangan , dan bukan parsing bawah-atas yang dihasilkan mesin, berbasis Bison-Flex. Bisakah seseorang di sini mengonfirmasi bahwa ini masalahnya? Dan jika demikian, mengapa kerangka kerja kompilator utama menggunakan parser tulisan tangan? Pembaruan : blog menarik tentang topik ini di sini

4
Panggil fungsi C dari kode C ++
Saya memiliki fungsi C yang ingin saya panggil dari C ++. Saya tidak bisa menggunakan " extern "C" void foo()" jenis pendekatan karena fungsi C gagal dikompilasi menggunakan g ++. Tapi dikompilasi dengan baik menggunakan gcc. Ada ide bagaimana memanggil fungsi dari C ++?
90 c++  c  linux  extern-c 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.