«c» etiketlenmiş sorular

C, sistem programlama (OS ve gömülü), kütüphaneler, oyunlar ve çapraz platform için kullanılan genel amaçlı bir programlama dilidir. Bu etiket, ISO 9899 standardında tanımlandığı gibi C dili ile ilgili genel sorularla kullanılmalıdır (aksi belirtilmedikçe en son sürüm 9899: 2018 - c89, c99, c11 vb. İle sürüme özgü istekleri de etiketleyin). C, C ++ 'dan farklıdır ve rasyonel bir nedenden yoksun C ++ etiketi ile birleştirilmemelidir.

2
Lambda makrosu nasıl lambda oluşturur?
GitHub'da bu kod parçasını buldum ama tam olarak anlamadım: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Sonra: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 Alt çizgi ne …


3
statik int arr [10] bellek adresi her zaman 060 ile biter
Buna benzeyen bir ac programım var main.c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } ve derlenen programı birkaç kez çalıştırdığımda bu çıktı 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 Neden hep 060 ile bitiyor? Ve dizi yığın halinde saklanıyor …
17 c  arrays  memory 

1
ASLR açık olmasına rağmen __libc_start_main adresi GDB içinde neden hep aynı?
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
Np.dot neden kesin değil? (n-dim dizileri)
np.dotİki 'float32'2D diziyi aldığımızı varsayalım : 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] Sayılar. Dışında değişebilirler: DURUM 1 : dilima 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], b)[0])) # …
15 python  c  arrays  numpy  precision 

3
Sabit adrese işaretçi ve aynı adresin sabitlerini işaretlemek için işaretçi ile işlev çağrısı
Bir dizi veri girişi ve işaretçiler kullanarak başka bir veri dizisi çıktı bir işlev yazmak istiyorum. Ben her ikisi de sonuç ne olduğunu merak ediyorum srcve dstaynı adres işaret çünkü derleyici const için optimize edebilirsiniz biliyorum. Tanımlanmamış bir davranış mı? (Hem C hem de C ++ ile etiketledim, çünkü cevabın …

5
Etkisi olmayan ifadeler neden C'de yasal kabul edilir?
Bu soru safsa özür dilerim. Aşağıdaki programı düşünün: #include <stdio.h> int main() { int i = 1; i = i + 2; 5; i; printf("i: %d\n", i); } Yukarıdaki örnekte, ifadeler 5;ve i;gereksiz görünüyor, ancak kod varsayılan olarak uyarı veya hata olmadan derler (ancak, gcc warning: statement with no effect …
13 c 

5
Biraz bir boolean ile karşılaştırma
Diyelim ki bir uint16_t kodlanmış bir dizi bayrak var flags. Örneğin AMAZING_FLAG = 0x02,. Şimdi bir fonksiyonum var. Bu işlevin bayrağını değiştirmek isteyip istemediğimi kontrol etmesi gerekir, çünkü bunu yapmak istersem flaşa yazmam gerekir. Ve bu pahalı. Bu nedenle, bana flags & AMAZING_FLAGeşit olup olmadığını söyleyen bir kontrol istiyorum doSet. …

1
Zaman neden time () tarafından bazen C kodunda timespec_get () öğesinin saniye bileşeninin 1 saniye gerisindedir?
Aşağıdaki kod snippet'i: 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); } } bu çıktıyı üretir: ... cTime: 1579268059 ts.tv_sec: …
12 c  time  posix  timespec 


1
Neden aynı ada sahip bir işleve bir makro tanımlamalıyım?
Aşağıdaki kodu https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h adresinde buldum. 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 #definegerçekten ne yapıyor ? Bunu yapmak ne zaman gereklidir?
12 c  linux-kernel 

3
“Uçucu” çok çekirdekli sistemler için taşınabilir C kodunda herhangi bir şeyi garanti ediyor mu?
Bir baktıktan sonra demet ait diğer sorular ve bunların cevapları , ben izlenimini almak C "uçucu" anahtar kelime tam olarak ne anlama geldiği konusunda yaygın bir görüş birliği vardır. Standardın kendisi bile herkesin ne anlama geldiği konusunda anlaşacak kadar net görünmüyor . Diğer sorunların yanı sıra: Donanımınıza ve derleyicinize bağlı …


1
GCC'nin köşeli parantez uygulaması içerir. Neden aşağıda açıklandığı gibi olmalıdır?
2.6 Bilgisayarlı İçindekiler bölümündeki bu belge aşağıdaki paragrafa sahiptir: Çizgi, bir <belirteciyle başlayan ve bir> belirtecini içeren bir belirteç akışına genişlerse, eklenecek dosya adını oluşturmak için <ve ilk> arasındaki belirteçler birleştirilir. Jetonlar arasındaki boşluklar tek bir alana indirgenir; ilk <boşluktan sonraki herhangi bir boşluk korunur, ancak kapanmadan önceki boşluk> yok …
11 c++  c  gcc  language-lawyer 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.