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.

3
alamat memori static int arr [10] selalu berakhir pada 060
Saya memiliki program ac yang terlihat seperti ini main.c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } dan menampilkan ini ketika saya menjalankan program yang dikompilasi beberapa kali 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 Mengapa selalu berakhir pada 060? …
17 c  arrays  memory 

1
Mengapa alamat __libc_start_main selalu sama di dalam GDB meskipun ASLR aktif?
Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it …
16 c  linux  gdb  libc  aslr 


1
Mengapa np.dot tidak tepat? (array n-redup)
Misalkan kita mengambil np.dotdua 'float32'array 2D: res = np.dot(a, b) # see CASE 1 print(list(res[0])) # list shows more digits [-0.90448684, -1.1708503, 0.907136, 3.5594249, 1.1374011, -1.3826287] Angka Kecuali, mereka dapat berubah: KASUS 1 : irisana np.random.seed(1) a = np.random.randn(9, 6).astype('float32') b = np.random.randn(6, 6).astype('float32') for i in range(1, len(a)): print(list(np.dot(a[:i], …
15 python  c  arrays  numpy  precision 


5
Mengapa pernyataan tanpa pengaruh dianggap legal dalam C?
Maafkan jika pertanyaan ini naif. Pertimbangkan program berikut: #include <stdio.h> int main() { int i = 1; i = i + 2; 5; i; printf("i: %d\n", i); } Dalam contoh di atas, pernyataan 5;dan i;tampak benar-benar berlebihan, namun kode mengkompilasi tanpa peringatan atau kesalahan secara default (namun, gcc tidak memberikan …
13 c 

5
Membandingkan sedikit ke boolean
Katakanlah saya memiliki satu set bendera, yang dikodekan dalam uint16_t flags. Sebagai contoh AMAZING_FLAG = 0x02,. Sekarang, saya punya fungsi. Fungsi ini perlu memeriksa apakah saya ingin mengubah bendera, karena jika saya ingin melakukan itu, saya perlu menulis ke flash. Dan itu mahal. Oleh karena itu, saya ingin cek yang …

1
Mengapa waktu dilaporkan oleh waktu () terkadang 1 detik di belakang komponen detik dari timespec_get () dalam kode C?
Potongan kode berikut: struct timespec ts; for (int x = 0; x < 100000000; x++) { timespec_get(&ts, TIME_UTC); long cTime = (long) time(NULL); if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) { printf("cTime: %ld\n", cTime); printf("ts.tv_sec: %ld\n", ts.tv_sec); printf("ts.tv_nsec: %ld\n", ts.tv_nsec); } } menghasilkan output ini: ... cTime: 1579268059 ts.tv_sec: …
12 c  time  posix  timespec 


1
Mengapa mendefinisikan makro untuk suatu fungsi dengan nama yang sama?
Saya menemukan kode di bawah ini di https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) { return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); } #define arch_atomic_sub_and_test arch_atomic_sub_and_test apa yang #definesebenarnya dilakukan? Kapan itu perlu dilakukan?
12 c  linux-kernel 




2
Contoh kode IBM, fungsi non-peserta tidak berfungsi di sistem saya
Saya sedang belajar re-entrancy dalam pemrograman. Di situs IBM ini (sangat bagus). Saya telah menemukan kode, disalin di bawah. Ini adalah kode pertama yang datang ke situs web. Kode mencoba menunjukkan masalah yang melibatkan akses bersama ke variabel dalam pengembangan program teks (asinkronisitas) yang tidak linier dengan mencetak dua nilai …
11 c  gcc  signals  x86-64  data-race 

3
Mengembalikan void pointer unik dari suatu fungsi
Untuk mendapatkan void *dari fungsi di CI akan melakukan sesuatu seperti ini (contoh sangat mendasar): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Bagaimana cara mencapai hasil yang sama saat menggunakan std::unique_ptr<>?
11 c++  c  unique-ptr 

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.