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.

7
Arsitektur eksotis yang menjadi perhatian komite standar
Saya tahu bahwa standar C dan C ++ meninggalkan banyak aspek implementasi bahasa yang ditentukan hanya karena jika ada arsitektur dengan karakteristik lain, akan sangat sulit atau tidak mungkin untuk menulis kompiler yang sesuai standar untuk itu. Saya tahu bahwa 40 tahun yang lalu komputer mana pun memiliki spesifikasi uniknya …
154 c++  c  architecture 

5
Kebocoran yang Dapat Dicapai masih terdeteksi oleh Valgrind
Semua fungsi yang disebutkan dalam blok ini adalah fungsi perpustakaan. Bagaimana saya bisa memperbaiki kebocoran memori ini? Itu terdaftar di bawah kategori " Masih terjangkau ". (Ada 4 lebih, yang sangat mirip, tetapi dengan berbagai ukuran) 630 bytes in 1 blocks are still reachable in loss record 5 of 5 …
154 c  pthreads  valgrind 


6
NSLog nama metode dengan Objective-C di iPhone
Saat ini, kami mendefinisikan diri kami mekanisme log yang diperluas untuk mencetak nama kelas dan nomor baris sumber log. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) Misalnya, ketika saya memanggil NCLog (@ "Hello world"); Outputnya adalah: <ApplicationDelegate:10>Hello world Sekarang saya juga ingin keluar nama …

11
~ x + ~ y == ~ (x + y) selalu salah?
Apakah kode ini selalu bernilai false? Kedua variabel adalah int yang ditandatangani dua komplemen. ~x + ~y == ~(x + y) Saya merasa harus ada beberapa nomor yang memenuhi persyaratan. Saya mencoba menguji angka antara -5000dan 5000tetapi tidak pernah mencapai kesetaraan. Apakah ada cara untuk membuat persamaan untuk menemukan solusi …

9
Dalam C, apakah kawat gigi bertindak sebagai bingkai tumpukan?
Jika saya membuat variabel dalam set baru kurung kurawal, apakah variabel itu muncul dari tumpukan pada kurung kurawal, atau apakah itu hang out sampai akhir fungsi? Sebagai contoh: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Akan dmengambil memori selama code that …
153 c  memory  stack 

9
Apa itu "panggilan balik" dalam C dan bagaimana mereka diterapkan?
Dari bacaan yang telah saya lakukan, Core Audio sangat bergantung pada callback (dan C ++, tapi itu cerita lain). Saya memahami konsep (semacam) pengaturan fungsi yang dipanggil oleh fungsi lain berulang kali untuk menyelesaikan tugas. Saya hanya tidak mengerti bagaimana mereka diatur dan bagaimana mereka sebenarnya bekerja. Setiap contoh akan …
153 c  callback 

14
Memeriksa penunjuk NULL dalam C / C ++ [ditutup]
Ditutup . Pertanyaan ini didasarkan pada pendapat . Saat ini tidak menerima jawaban. Ingin meningkatkan pertanyaan ini? Perbarui pertanyaan sehingga dapat dijawab dengan fakta dan kutipan dengan mengedit posting ini . Ditutup 5 tahun yang lalu . Perbaiki pertanyaan ini Dalam ulasan kode baru-baru ini, seorang kontributor mencoba untuk menegakkan …

13
Alat apa yang ada untuk pemrograman fungsional dalam C?
Saya telah berpikir banyak akhir-akhir ini tentang bagaimana cara melakukan pemrograman fungsional dalam C ( bukan C ++). Jelas, C adalah bahasa prosedural dan tidak benar-benar mendukung pemrograman fungsional secara asli. Apakah ada ekstensi kompiler / bahasa yang menambahkan beberapa konstruksi pemrograman fungsional ke bahasa? GCC menyediakan fungsi bersarang sebagai …

13
Bisakah num ++ menjadi atom untuk 'int num'?
Secara umum, untuk int num, num++(atau ++num), sebagai operasi baca-modifikasi-tulis, bukan atom . Tapi saya sering melihat kompiler, misalnya GCC , menghasilkan kode berikut untuk itu ( coba di sini ): Karena baris 5, yang sesuai dengan num++satu instruksi, dapatkah kita menyimpulkan bahwa num++ atom dalam hal ini? Dan jika …

8
Mengembalikan array menggunakan C
Saya relatif baru untuk C dan saya butuh bantuan dengan metode berurusan dengan array. Berasal dari pemrograman Java, saya terbiasa bisa mengatakan int [] method()untuk mengembalikan array. Namun, saya telah menemukan bahwa dengan C Anda harus menggunakan pointer untuk array ketika Anda mengembalikannya. Menjadi seorang programmer baru, saya benar-benar tidak …
153 c  arrays  pointers  char 

2
Bagaimana cara menggabungkan dua kali dengan prepro C dan memperluas makro seperti pada “arg ## _ ## MACRO”?
Saya mencoba untuk menulis sebuah program di mana nama-nama beberapa fungsi tergantung pada nilai variabel makro tertentu dengan makro seperti ini: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); Sayangnya, makro NAME()mengubahnya menjadi int some_function_VARIABLE(int a); daripada int some_function_3(int a); jadi ini jelas cara yang …

4
Apa yang disiratkan oleh "#define _GNU_SOURCE"?
Hari ini saya harus menggunakan basename()fungsi, dan man 3 basename(di sini ) memberi saya beberapa pesan aneh: Catatan Ada dua versi basename () yang berbeda - versi POSIX yang dijelaskan di atas, dan versi GNU , yang diperoleh setelahnya #define _GNU_SOURCE #include <string.h> Saya bertanya-tanya apa #define _GNU_SOURCEartinya ini : …
152 c  posix  gnu 

22
Kesalahan dalam menangani kode C.
Apa yang Anda anggap "praktik terbaik" ketika datang ke kesalahan penanganan kesalahan secara konsisten di perpustakaan C. Ada dua cara yang saya pikirkan: Selalu kembalikan kode kesalahan. Fungsi khas akan terlihat seperti ini: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); Selalu memberikan pendekatan penunjuk kesalahan: int getObjectSize(MYAPIHandle h, MYAPI_ERROR* returnedError); Saat menggunakan …
152 c  error-handling 


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.