Pytania oznaczone «c»

9
Czy ta implementacja C ++ AtomicInt jest poprawna?

Przesłanka: Pracuję w środowisku ARM (prawie bez systemu), w którym nawet nie mam C ++ 11 (z std::atomic<int>) dostępnym, więc proszę unikać odpowiedzi typu „ po prostu użyj standardowego C ++std::atomic<int> ”: nie mogę . Czy ta implementacja ARM AtomicInt jest poprawna? (załóżmy, że...

9
Jak sizeof działa z tym dereferencją wskaźnika do tablicy?

Tutaj mam wskaźnik ptrdo tablicy arr4 liczb całkowitych. ptrwskazuje na całą tablicę. ptr[0]lub *ptrwskazuje pierwszy element tablicy, więc dodanie 1 ptr[0]daje adres drugiego elementu tablicy. Nie rozumiem, dlaczego użycie sizeof(ptr[0])daje rozmiar całej tablicy, 16 bajtów, a nie rozmiar tylko...

9
+ (+ k--) wyrażenie w C

Widziałem to pytanie w teście, w którym musimy podać dane wyjściowe następującego kodu. #include<stdio.h> int main(){ int k = 0; while(+(+k--)!=0) k=k++; printf("%d\n", k); return 0; } Dane wyjściowe to -1. Nie jestem jednak pewien, dlaczego to jest odpowiedź. Co to wyrażenie...

9
GRPC: tworzenie wysokowydajnego klienta w Javie / Scali

Mam usługę, która przesyła wiadomości z dość wysoką prędkością. Obecnie jest obsługiwany przez akka-tcp i wytwarza 3,5 miliona wiadomości na minutę. Postanowiłem dać grpc szansę. Niestety spowodowało to znacznie mniejszą przepustowość: ~ 500 000 wiadomości na minutę, a nawet mniej. Czy mógłbyś...

9
foo (void) vs foo (void *)

Pod względem funkcjonalnym i składniowym, czy istnieje różnica między funkcją, której prototypem jest int foo(void)i int foo(void *)? Znam różnicę między, na przykład, int bar(int)a int bar(int *)- jeden z nich szuka int, a drugi szuka wskaźnika int. Czy voidzachowuje się w ten sam...

9
Wskaźnik C do deklaracji tablicowej z bitowym i operatorem

Chcę zrozumieć następujący kod: //... #define _C 0x20 extern const char *_ctype_; //... __only_inline int iscntrl(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); } Pochodzi z pliku ctype.h z kodu źródłowego systemu operacyjnego obenbsd. Ta funkcja sprawdza, czy...

9
Co to jest enkapsulacja czasu kompilacji w C?

Kiedy badałem zalety C w stosunku do C ++, natknąłem się na ten akapit: Standardowym sposobem w C do enkapsulacji jest przekazanie do przodu deklaracji struktury i zezwalanie na dostęp do jej danych tylko poprzez funkcje. Ta metoda tworzy także enkapsulację czasu kompilacji. Hermetyzacja czasu...

9
Od języka naturalnego do wyrażenia w C ++

Zadanie: Przetłumacz następujące wyrażenia języka naturalnego na wyrażenia C ++. Załóżmy, że wszystkie zmienne są liczbami nieujemnymi lub wartością logiczną (o wartości true lub false). Język naturalny: Albo a i b są fałszywe, lub c jest prawdą, ale nie jedno i drugie. Moje...

9
CHAR_WIDTH niezadeklarowany

‘CHAR_WIDTH’ undeclared Podczas próby skompilowania tego prostego programu pojawia się błąd : #include <stdio.h> #include <limits.h> int main() { printf("CHAR_BIT = %d\n", CHAR_BIT); printf("CHAR_WIDTH = %d\n", CHAR_WIDTH); return (0); } z gcc ./show_char_width.c -o...

9
Czy można dodać zero do wskaźnika zerowego?

Wiem, że arytmetyka wskaźników jest niedozwolona dla wskaźników zerowych. Ale wyobraź sobie, że mam coś takiego: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin()...

9
Dlaczego LLVM przydziela zmienną redundantną?

Oto prosty plik C z definicją enum i mainfunkcją: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Przenosi się na następujący LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, align 4 store i32 0, i32* %1, align 4 store...