Na przykład, SysInternals narzędzie „FileMon” z przeszłości ma sterownik trybu jądra, którego kod źródłowy jest w całości w jednym pliku 4000 linii. To samo dotyczy pierwszego w historii napisanego programu ping (~ 2000 LOC).
Czy w językach, w których rozróżnia się pliki „źródłowe” i „nagłówkowe” (głównie C i C ++), lepiej udokumentować funkcje w pliku nagłówkowym: ( sprowadzony z CCAN ) /** * time_now - return the current time * * Example: * printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec); */ struct timeval time_now(void); …
Zawsze słyszałem, że C jest język z wyboru do wykorzystania dla systemów wbudowanych, lub czegokolwiek, co musi działać z maksymalną prędkością. Nigdy nie rozwinąłem zamiłowania do C, głównie dlatego, że nie lubię arytmetyki wskaźników, a język jest ledwie szczeblem ponad asemblerem. Z drugiej strony, języki ML są funkcjonalne, języki odśmiecane, …
Słyszałem, że powinieneś unikać prowadzenia nowych linii podczas korzystania printf. Więc zamiast tego printf("\nHello World!")powinieneś użyćprintf("Hello World!\n") W tym konkretnym przykładzie powyżej nie ma to sensu, ponieważ wynik byłby inny, ale rozważ to: printf("Initializing"); init(); printf("\nProcessing"); process_data(); printf("\nExiting"); w porównaniu do: printf("Initializing\n"); init(); printf("Processing\n"); process_data(); printf("Exiting"); Nie widzę żadnych korzyści …
Istnieje kilka języków programowania, dla których istnieje system zarządzania pakietami: CTAN dla TeX CPAN dla Perla Pip i jajka dla Pythona Maven dla Java Cabal dla Haskell Klejnoty dla Ruby npm dla NodeJS altana do frontendu Javascript i CSS nuget dla C # kompozytor dla PHP Czy istnieją inne języki …
Czasami napotykasz sytuację, w której musisz rozszerzyć / ulepszyć istniejący kod. Widzisz, że stary kod jest bardzo ubogi, ale również trudny do rozszerzenia i wymaga czasu. Czy warto zastąpić go nowoczesnym kodem? Jakiś czas temu podobało mi się podejście lean, ale teraz wydaje mi się, że lepiej poświęcić wiele optymalizacji …
Jakie było uzasadnienie braku wyraźnego przechowywania długości tablicy z tablicą w C? Moim zdaniem istnieje wiele powodów, aby to zrobić, ale niewiele z tego powodu (C89). Na przykład: Dostępna długość bufora może zapobiec jego przepełnieniu. Styl Java arr.lengthjest zarówno przejrzysty, jak i pozwala programistom uniknąć konieczności utrzymywania wielu ints na …
Próbuję zrozumieć różnicę między językami proceduralnymi, takimi jak C, a językami obiektowymi, takimi jak C ++. Nigdy nie korzystałem z C ++, ale rozmawiałem z przyjaciółmi o tym, jak je rozróżnić. Powiedziano mi, że C ++ ma koncepcje obiektowe, a także tryby publiczne i prywatne do definiowania zmiennych: rzeczy, których …
Gdy program C jest uruchomiony, dane są przechowywane na stercie lub stosie. Wartości są przechowywane w adresach RAM. Ale co ze wskaźnikami typu (np. intLub char)? Czy są również przechowywane? Rozważ następujący kod: char a = 'A'; int x = 4; Przeczytałem, że A i 4 są tutaj przechowywane w …
C jest jednym z najczęściej używanych języków na świecie. Stanowi ogromną część istniejącego kodu i jest nadal używany do ogromnej ilości nowego kodu. Jest uwielbiany przez użytkowników, jest tak szeroko rozpowszechniony, że możliwość uruchamiania C jest dla wielu nieformalną definicją platformy i jest chwalony przez fanów za to, że jest …
Jakie rzeczy absolutnie nigdy nie powinny być zawarte w pliku nagłówkowym? Jeśli na przykład pracuję z udokumentowanym standardowym formatem przemysłowym, który ma wiele stałych, czy dobrą praktyką jest ich definiowanie w pliku nagłówkowym (jeśli piszę parser dla tego formatu)? Jakie funkcje powinny przejść do pliku nagłówka? Jakie funkcje nie powinny?
Wiele pytań i odpowiedzi na stronach C / C ++, w szczególności lub pośrednio, omawia problemy z wydajnością mikro (takie jak narzut funkcji pośredniej vs. bezpośredniej vs. wbudowanej) lub przy użyciu algorytmu O (N 2 ) vs O (N log N) na lista 100 przedmiotów. Zawsze piszę bez obawy o …
Języki takie jak C, Java i C ++ wszystko wymaga nawiasów wokół całego wyrażenia stosowane w sposób if, whilelub switch. if (true) { // Do something } w przeciwieństwie do if true { // Do something } Wydaje mi się to dziwne, ponieważ nawiasy są zbędne. W tym przykładzie truejest …
Rozumiem, że w latach 80., a być może także w latach 90., Pascal i C byli praktycznie głównymi językami produkcyjnymi. Czy ostateczna śmierć Pascala wynika wyłącznie z zaniedbania Delphi przez Borlanda ? A może było coś więcej, na przykład pech, czy może coś z natury nie tak z Pascalem (czy …
Kilka miesięcy temu zaczęliśmy opracowywać aplikację do kontroli opracowanego przez nas sprzętu testowego i rejestrować zestaw pomiarów. Powinien mieć prosty interfejs użytkownika i prawdopodobnie wymagałby wątków ze względu na ciągłe nagrywanie, które musi mieć miejsce. Ta aplikacja będzie używana przez kilka lat i będzie utrzymywana przez wielu studentów informatyki w …
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.