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
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 …
9 c  llvm  llvm-codegen 

1
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 show_char_width i gcc: GNU C17 (Ubuntu 8.3.0-6ubuntu1) wersja 8.3.0 (x86_64-linux-gnu) skompilowana przez GNU C wersja 8.3.0, …
9 c  gcc 


2
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 kompilacji pozwala nam zmieniać elementy …
9 c 

1
Dlaczego mój program zacina się podczas uruchamiania programu Mandelbrot Brainf ***?
Chciałem poprawić swoje umiejętności w C, więc szukam pomysłów na jakiś program. Ktoś proponuje stworzenie prostego interpretera Brainf ***, a następnie kompilatora. A więc jestem tu. Utworzyłem interpreter i działa on zgodnie z oczekiwaniami, z wyjątkiem programu Mandelbrot: A mandelbrot set fractal viewer in brainfuck written by Erik Bosman +++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[ …

6
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 znak jest znakiem kontrolnym, …
9 c  openbsd 

3
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 sposób?

3
+ (+ 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 +(+k--)oznacza w C?
9 c 

4
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 pierwszego elementu, 4 bajty (jak ptr[0]wskazuje na pierwszy element w tablicy). …
9 c  arrays  pointers 

1
Czy inicjalizacje obiektów w Javie „Foo f = new Foo ()” są zasadniczo takie same jak przy użyciu malloc jako wskaźnika w C?
Próbuję zrozumieć rzeczywisty proces tworzenia obiektów w Javie - i przypuszczam, że inne języki programowania. Czy błędem byłoby założenie, że inicjalizacja obiektu w Javie jest taka sama, jak w przypadku użycia malloc dla struktury w C? Przykład: Foo f = new Foo(10); typedef struct foo Foo; Foo *f = malloc(sizeof(Foo)); …



4
Obliczanie zagnieżdżonego katalogu głównego w C
Poproszono mnie o obliczenie następującego zagnieżdżonego wyrażenia głównego przy użyciu tylko rekurencji . Napisałem poniższy kod, który działa, ale pozwolili nam użyć tylko jednej funkcji i 1 wejścia ndo tego celu, a nie 2 takich jak ja. Czy ktoś może mi pomóc przekształcić ten kod w jedną funkcję, która obliczy …
9 c  recursion  sqrt 

1
Główny parametr C.
Napisałem kod, który musi wyświetlać główne parametry, ale kiedy go skompilowałem i wpisałem „*” program pokazuje moją strukturę plików. Polecenie w cmd wygląda następująco:program.exe 1 2 3 * #include <stdio.h> #include <stdlib.h> int main(int argc, char const* argv[]) { for (int i=0; i<argc; i++) printf("%s\n", argv[i]); return 0; } Wynik …

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.