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.

2
Apa yang diwakili oleh konstanta 0,0039215689?
Saya terus melihat ini muncul dalam berbagai file header grafis 0.0039215689 Sepertinya ada hubungannya dengan warna mungkin? Inilah hit pertama di Google : void RDP_G_SETFOGCOLOR(void) { Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f; Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f; Gfx.FogColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f; Gfx.FogColor.A = _SHIFTR(w1, …


11
Apa perbedaan antara NULL, '\ 0' dan 0?
Di C, tampaknya ada perbedaan antara berbagai nilai nol - NULL, NULdan 0. Saya tahu bahwa karakter ASCII '0'mengevaluasi ke 48atau 0x30. The NULLpointer biasanya didefinisikan sebagai: #define NULL 0 Atau #define NULL (void *)0 Selain itu, ada NULkarakter '\0'yang tampaknya juga mengevaluasi 0. Apakah ada kalanya ketiga nilai ini …
309 c  pointers  null 

8
Mengapa rand () + rand () menghasilkan angka negatif?
Saya mengamati bahwa rand()fungsi perpustakaan ketika dipanggil hanya sekali dalam satu lingkaran, hampir selalu menghasilkan angka positif. for (i = 0; i < 100; i++) { printf("%d\n", rand()); } Tetapi ketika saya menambahkan dua rand()panggilan, nomor yang dihasilkan sekarang memiliki lebih banyak angka negatif. for (i = 0; i < …
304 c  random 



5
Mengekstrak bit dengan perkalian tunggal
Saya melihat teknik yang menarik digunakan dalam jawaban untuk pertanyaan lain , dan ingin mengerti sedikit lebih baik. Kami diberi integer 64-bit yang tidak ditandatangani, dan kami tertarik pada bit berikut: 1.......2.......3.......4.......5.......6.......7.......8....... Secara khusus, kami ingin memindahkan mereka ke posisi delapan besar, seperti: 12345678........................................................ Kami tidak peduli tentang nilai bit …

14
MIN dan MAX dalam C
Di mana MINdan MAXdidefinisikan dalam C, jika ada? Apa cara terbaik untuk menerapkan ini, secara umum dan ketik seaman mungkin? (Ekstensi kompiler / builtin untuk kompiler arus utama lebih disukai.)
301 c  max  min  c-preprocessor 

3
Mengapa NaN - NaN == 0,0 dengan Intel C ++ Compiler?
Sudah diketahui umum bahwa NaN menyebar dalam aritmatika, tetapi saya tidak dapat menemukan demonstrasi, jadi saya menulis tes kecil: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = qNaN - 6.0f; float …
300 c++  c  floating-point  ieee-754  icc 


4
Ukuran karakter ('a') di C / C ++
Berapa ukuran karakter dalam C dan C ++? Sejauh yang saya tahu ukuran char adalah 1 byte di C dan C ++. Dalam C: #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } Dalam C ++: #include <iostream> int main() { std::cout << "Size of …
298 c++  c  types 

9
Pointer di C: kapan harus menggunakan ampersand dan tanda bintang?
Saya baru memulai dengan pointer, dan saya sedikit bingung. Saya tahu &berarti alamat suatu variabel dan yang *dapat digunakan di depan variabel pointer untuk mendapatkan nilai objek yang ditunjuk oleh pointer. Tetapi berbagai hal bekerja secara berbeda ketika Anda bekerja dengan array, string atau ketika Anda memanggil fungsi dengan salinan …
298 c  pointers 

6
Cara mencetak tipe int64_t dalam C
Standar C99 memiliki tipe integer dengan ukuran byte seperti int64_t. Saya menggunakan kode berikut: #include <stdio.h> #include <stdint.h> int64_t my_int = 999999999999999999; printf("This is my_int: %I64d\n", my_int); dan saya mendapatkan peringatan kompiler ini: warning: format ‘%I64d’ expects type ‘int’, but argument 2 has type ‘int64_t’ Saya mencoba dengan: printf("This is …
298 c  stdint 

26
Mudah mengukur waktu yang telah berlalu
Saya mencoba menggunakan waktu () untuk mengukur berbagai titik program saya. Yang tidak saya mengerti adalah mengapa nilai-nilai di sebelum dan sesudahnya sama? Saya mengerti ini bukan cara terbaik untuk profil program saya, saya hanya ingin melihat berapa lama waktu yang dibutuhkan. printf("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf("**MyProgram::after time= …
297 c++  c  linux  time  measurement 

3
Apa yang dimaksud dengan operator >>> = dalam C?
Diberikan oleh seorang rekan sebagai teka-teki, saya tidak tahu bagaimana sebenarnya program C ini mengkompilasi dan berjalan. Apa >>>=operator ini dan 1P1literal aneh ? Saya telah menguji di dentang dan GCC. Tidak ada peringatan dan hasilnya "???" #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 …

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.