Pracuję dla firmy, która rozpoczęła integrację wbudowanych systemów komputerowych z produkowanymi przez nas produktami. Mamy dość szeroką gamę produktów i są one dystrybuowane na całym świecie. Ponadto zaprojektowaliśmy kilka zintegrowanych kart, które mogą służyć do wielu celów, w zależności od oprogramowania wbudowanego w system. W ten sposób nie musimy przeprojektowywać …
Powiedzmy, że chcę mieć w kodzie kilka typów komunikatów wyjściowych. Jednym z nich jest DEBUG, który jest drukowany tylko wtedy, gdy kod jest kompilowany w trybie debugowania. Zwykle musiałbym napisać coś takiego #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif co jest dość kłopotliwe i denerwujące w użyciu w …
Mam silne doświadczenie w Javie / Groovy i zostałem przydzielony do zespołu, który utrzymuje dość dużą bazę kodu C dla oprogramowania administracyjnego. Niektóre problemy, takie jak radzenie sobie z kroplami w bazie danych lub generowanie raportów w plikach PDF i Excel, zostały przeniesione na zewnętrzną usługę Java. Jednak jako programista …
Używam C i structs, gdzie struct może mieć członków, ale nie funkcje. Załóżmy dla uproszczenia, że chcę utworzyć strukturę dla ciągów, które nazywam stri chcę być w stanie zrobić, str.replace(int i, char c)gdzie ijest indeks ciągu i cjest on znakiem zastępującym znak w miejscu i. Czy nigdy nie byłoby to …
Kiedy programowanie w CI uznało za nieocenione pakowanie struktur za pomocą __attribute__((__packed__))atrybutu GCC, dzięki czemu mogę łatwo przekonwertować ustrukturyzowaną część pamięci ulotnej na tablicę bajtów, która ma być przesłana przez magistralę, zapisana w pamięci lub zastosowana do bloku rejestrów. Spakowane struktury gwarantują, że traktowane jako tablica bajtów nie będą zawierać …
Standard C11 mówi, że tablice, zarówno o wielkości, jak i o zmiennej długości „powinny mieć wartość większą niż zero”. Jakie jest uzasadnienie niedopuszczenia długości 0? Zwłaszcza w przypadku tablic o zmiennej długości doskonale jest mieć rozmiar zero co jakiś czas. Jest także przydatny w przypadku tablic statycznych, gdy ich rozmiar …
Po przeczytaniu tych dwóch pytań widzę, że zrozumienie zachowania pamięci podręcznej procesora może być ważne, gdy mamy do czynienia z dużą ilością danych w pamięci. Chciałbym zrozumieć sposób działania buforowania, aby dodać kolejne narzędzie do mojego zestawu narzędzi optymalizacji. Jakie są podstawowe punkty dotyczące sposobu działania pamięci podręcznej procesora, aby …
Ostatnio staram się zrozumieć, jaka jest właściwa ilość sprawdzania i jakie są właściwe metody. Mam kilka pytań na ten temat: Jaki jest właściwy sposób sprawdzania błędów (złe dane wejściowe, złe stany itp.)? Czy lepiej jest jawnie sprawdzać błędy, czy używać funkcji takich jak asercje, które można zoptymalizować z końcowego kodu? …
GCC jest kompilatorem C. Glibc jest biblioteką C. Czy jednak nie jest to absolutnie konieczne dla kompilatora i standardowej biblioteki spakowanej razem jako implementacja języka C? Na przykład, biblioteki C zawiera kompilator ABI i specyficzny materiał podobny <limits.h>, <stdint.h>itd, które różnią się między kompilatory API. A szczegóły, takie jak „jak …
Mój instruktor klasy Mikroprocesor dał nam zadanie i powiedział: „Napisz asembler w C.” - Mój umiłowany profesorze Wydawało mi się to trochę nielogiczne. Jeśli się nie mylę, asembler to pierwszy krok od Kodu Maszynowego do podróży po językach wyższego poziomu. Mam na myśli, że C jest językiem wyższego poziomu niż …
Oglądałem ten film na maksymalnych i minimalnych wartościach liczb całkowitych ze znakiem. Weźmy przykład dodatniej wartości ze znakiem - 0000 0001 Pierwszy bit oznacza, że liczba jest dodatnia, a ostatnie 7 bitów to sama liczba. Można to łatwo zinterpretować jako +1. Teraz weźmy przykład ujemnej wartości ze znakiem - 1000 …
Z trudem znajduję pragmatyczne porady w świecie rzeczywistym dotyczące konwencji nazewnictwa funkcji dla średniej wielkości projektu biblioteki C. Mój projekt biblioteczny jest podzielony na kilka modułów i podmodułów z własnymi nagłówkami i luźno podąża za stylem OO (wszystkie funkcje przyjmują pewną strukturę jako pierwszy argument, brak globałów itp.). Położyliśmy nasze …
Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było tematem dotyczącym wymiany stosów inżynierii oprogramowania. Zamknięte 4 lata temu . Podczas kodowania dużego projektu w CI pojawił się problem. Jeśli będę nadal pisać więcej kodu, nadejdzie czas, kiedy będzie …
Korzystam z następującego kodu w mojej aplikacji i działa dobrze. Ale zastanawiam się, czy lepiej zrobić to z malloc, czy zostawić tak, jak jest? function (int len) { char result [len] = some chars; send result over network }
Obecnie pracuję z systemami osadzonymi i zastanawiam się, jak zaimplementować ciągi w mikroprocesorze bez systemu operacyjnego. Do tej pory używam idei, że NULL kończy wskaźniki wskaźników i traktuje je jako ciągi znaków, w których NULL oznacza koniec. Wiem, że jest to dość powszechne, ale czy zawsze możesz na to liczyć? …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.