Pytania otagowane jako c

C jest językiem programowania ogólnego przeznaczenia używanym do programowania systemu (system operacyjny i wbudowane), bibliotek, gier i platform. Tego znacznika należy używać z ogólnymi pytaniami dotyczącymi języka C, zgodnie z definicją w normie ISO 9899 (najnowsza wersja, 9899: 2018, o ile nie określono inaczej - także znaczniki specyficzne dla wersji za pomocą c89, c99, c11 itd.). C różni się od C ++ i nie należy go łączyć ze znacznikiem C ++ bez uzasadnionego powodu.

3
static int arr [10] adres pamięci zawsze kończy się na 060
Mam program ac, który wygląda tak main.c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } i wypisuje to, gdy uruchamiam skompilowany program kilka razy 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 Dlaczego zawsze kończy się na 060? A czy tablica …
17 c  arrays  memory 

1
Dlaczego adres __libc_start_main jest zawsze taki sam w GDB, mimo że włączony jest ASLR?
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
Dlaczego np.dot jest nieprecyzyjny? (tablice n-dim)
Załóżmy, że bierzemy np.dotdwie 'float32'tablice 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] Liczby. Z wyjątkiem, że mogą zmienić: PRZYPADEK 1 : plastereka 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)): …
15 python  c  arrays  numpy  precision 

3
Wywołanie funkcji ze wskaźnikiem na non-const i wskaźnikiem na const argumentów o tym samym adresie
Chcę napisać funkcję, która wprowadza tablicę danych i wyprowadza inną tablicę danych za pomocą wskaźników. Zastanawiam się, co jest wynikiem zarówno jeśli srci dstwskazał na samym adresem, bo wiem, kompilator może zoptymalizować dla const. Czy jest to niezdefiniowane zachowanie? (Oznacziłem zarówno C, jak i C ++, ponieważ nie jestem pewien, …

5
Dlaczego stwierdzenia bez skutku są uważane za legalne w C?
Wybacz, jeśli to pytanie jest naiwne. Rozważ następujący program: #include <stdio.h> int main() { int i = 1; i = i + 2; 5; i; printf("i: %d\n", i); } W powyższym przykładzie, oświadczenia 5;i i;wydawać całkowicie zbędny, jednak kompiluje kod bez ostrzeżenia lub błędy domyślnie (jednakże gcc nie rzucać warning: …
13 c 

5
Porównywanie trochę do wartości logicznej
Powiedzmy, że mam zestaw flag zakodowanych w uint16_t flags. Na przykład AMAZING_FLAG = 0x02. Teraz mam funkcję. Ta funkcja musi sprawdzić, czy chcę zmienić flagę, ponieważ jeśli chcę to zrobić, muszę napisać, aby flashować. A to jest drogie. Dlatego chcę testu, który mówi mi, czy flags & AMAZING_FLAGjest równy doSet. …

1
Dlaczego czas zgłaszany przez time () bywa czasem 1 sekunda za sekundowym składnikiem timespec_get () w kodzie C?
Poniższy fragment kodu: 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); } } tworzy ten wynik: ... cTime: 1579268059 ts.tv_sec: …
12 c  time  posix  timespec 


1
Po co definiować makro do funkcji o tej samej nazwie?
Znalazłem poniższy kod w 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 co tak #definenaprawdę robi? Kiedy jest to konieczne?
12 c  linux-kernel 



1
Implementacja nawiasów kątowych przez GCC obejmuje. Dlaczego musi być tak, jak opisano poniżej?
Ten dokument w sekcji 2.6 „Obliczone obejmuje” zawiera następujący akapit: Jeśli linia zostanie rozwinięta do strumienia tokena rozpoczynającego się od <tokena i zawierającego token>, wówczas tokeny między <a pierwszym> są łączone w celu utworzenia nazwy pliku, która ma zostać uwzględniona. Każda biała spacja między tokenami jest zredukowana do pojedynczej spacji; …
11 c++  c  gcc  language-lawyer 


2
Przykładowy kod IBM, funkcje nieprzyłączające nie działają w moim systemie
Studiowałem ponowne entuzjazm w programowaniu. Na to stronie IBM (naprawdę dobra). Założyłem kod, skopiowany poniżej. To pierwszy kod, który pojawia się po stronie. Kod próbuje pokazać problemy dotyczące wspólnego dostępu do zmiennej w nieliniowym rozwoju programu tekstowego (asynchroniczność), wypisując dwie wartości, które stale się zmieniają w „niebezpiecznym kontekście”. #include <signal.h> …
11 c  gcc  signals  x86-64  data-race 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.