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.

6
Bagaimana susunan multi-dimensi diformat dalam memori?
Di C, saya tahu saya dapat secara dinamis mengalokasikan array dua dimensi di heap menggunakan kode berikut: int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } Jelas, ini sebenarnya menciptakan array satu dimensi dari pointer ke sekelompok array satu dimensi yang terpisah …


8
Overloading Makro pada Jumlah Argumen
Saya punya dua makro FOO2dan FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Saya ingin mendefinisikan makro baru FOOsebagai berikut: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Tetapi ini tidak berhasil karena makro tidak membebani jumlah argumen. Tanpa memodifikasi FOO2dan FOO3, ada beberapa cara untuk mendefinisikan makro FOO(menggunakan __VA_ARGS__atau sebaliknya) untuk mendapatkan …
184 c  macros  c-preprocessor 

8
Apa yang dilakukan oleh panggilan sistem brk ()?
Menurut manual pemrogram Linux: brk () dan sbrk () mengubah lokasi jeda program, yang menentukan akhir dari segmen data proses. Apa arti segmen data di sini? Apakah hanya segmen data atau data, BSS, dan heap yang digabungkan? Menurut wiki: Terkadang data, BSS, dan area tumpukan secara kolektif disebut sebagai "segmen …
184 c  linux  unix  memory-management  brk 

16
C membaca file baris demi baris
Saya menulis fungsi ini untuk membaca baris dari file: const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error allocating memory for line buffer."); exit(1); } …
184 c  file-io  line  std 



8
Bagaimana cara membandingkan string dengan benar?
Saya mencoba mendapatkan program untuk membiarkan pengguna memasukkan kata atau karakter, menyimpannya, dan mencetaknya hingga pengguna mengetiknya lagi, keluar dari program. Kode saya terlihat seperti ini: #include <stdio.h> int main() { char input[40]; char check[40]; int i=0; printf("Hello!\nPlease enter a word or character:\n"); gets(input); printf("I will now repeat this until …
183 c  string  strcmp 

2
Penggunaan realistis kata kunci 'pembatasan' C99?
Saya sedang menelusuri beberapa dokumentasi dan pertanyaan / jawaban dan melihatnya disebutkan. Saya membaca deskripsi singkat, menyatakan bahwa itu pada dasarnya adalah janji dari programmer bahwa pointer tidak akan digunakan untuk menunjuk ke tempat lain. Adakah yang bisa menawarkan beberapa kasus realistis di mana nilainya benar-benar menggunakan ini?
183 c  gcc  c99  restrict-qualifier 



6
Bagaimana cara saya mendefinisikan dan menggunakan ENUM di Objective-C?
Saya mendeklarasikan enum dalam file implementasi saya seperti yang ditunjukkan di bawah ini, dan mendeklarasikan variabel jenis itu di antarmuka saya sebagai PlayerState thePlayerState; dan menggunakan variabel dalam metode saya. Tapi saya mendapatkan kesalahan yang menyatakan bahwa itu tidak dideklarasikan. Bagaimana cara mendeklarasikan dan menggunakan variabel tipe PlayerState dengan benar …
180 iphone  objective-c  c 

16
Di mana variabel statis disimpan dalam C dan C ++?
Dalam segmen apa (.BSS, .DATA, lainnya) dari file yang dapat dieksekusi adalah variabel statis yang disimpan sehingga mereka tidak memiliki nama tabrakan? Sebagai contoh: foo.c: bar.c: static int foo = 1; static int foo = 10; void fooTest() { void barTest() { static int bar = 2; static int bar …


10
Ganti pernyataan: haruskah default menjadi kasus terakhir?
Pertimbangkan switchpernyataan berikut : switch( value ) { case 1: return 1; default: value++; // fall-through case 2: return value * 2; } Kode ini mengkompilasi, tetapi apakah ini valid (= perilaku yang ditentukan) untuk C90 / C99? Saya belum pernah melihat kode di mana kasus default bukan kasus terakhir. …

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.