Запитання з тегом «c»

C - це комп'ютерна мова програмування загального призначення, що використовується для операційних систем, ігор та інших високопродуктивних робіт.

1
Які абсолютні, мінімальні вимоги до вмісту SE-азіатських графік для вбудованого системного проекту?
Я працюю в компанії, яка почала інтегрувати вбудовані комп'ютерні системи в наші продукти, які ми виробляємо. У нас досить широкий асортимент продукції, і вони поширюються по всьому світу. Крім того, ми розробили кілька інтегрованих плат, які можуть виконувати різні цілі, залежно від прошивки, яка прошита в систему. Таким чином, нам …

3
Чи використовувати макроси C / C ++ як ярлик для умовної компіляції є хорошою практикою?
Скажімо, я хочу мати кілька типів вихідних повідомлень у своєму коді. Один з них - це DEBUG, який друкується лише тоді, коли код складається в режимі налагодження. Зазвичай мені доведеться написати щось подібне #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif що досить громіздко і дратівливо використовувати у багатьох …
13 c++  c  macros 

4
Чи є загальноприйняті вказівки щодо того, як писати сучасний C?
У мене сильний Java / Groovy фон, і я був призначений до команди, яка підтримує досить велику базу коду С для адміністративного програмного забезпечення. Деякі больові моменти, як, наприклад, робота з кровотоком у базі даних або генерування звітів у форматі PDF та Excel, були екстерналізовані до веб-сервісу Java. Однак, як …
13 c  maintenance 

4
Чи може С-структура поводитись так, ніби вона мала функцію?
Я використовую C і structs, де структура може мати членів, але не функцій. Припустимо для простоти, що я хочу створити структуру для рядків, які я називаю, strі я хочу бути в змозі робити, str.replace(int i, char c)де iє індекс рядка і cє символом, який замінить символ у позиції i. Чи …

4
Чи є стандартний спосіб або стандартна альтернатива упаковці структури в с?
Коли програмування в CI виявило безцінним пакувати структури за допомогою __attribute__((__packed__))атрибута GCC, тож я можу легко перетворити структурований фрагмент летючої пам'яті в масив байтів, що передаються по шині, зберігаються для зберігання або застосовуються до блоку регістрів. Упаковані структури гарантують, що при обробці як масиві байтів він не буде містити жодних …

6
Чому масиви C не мають довжини 0?
Стандарт C11 говорить, що масиви, як за розмірами, так і за змінною довжиною, "повинні мати значення більше нуля". Яке обґрунтування не допускає довжини 0? Спеціально для масивів змінної довжини має сенс мати раз у раз розмір нуля. Він також корисний для статичних масивів, коли їх розмір є макросом або параметром …
13 c  array 

4
Що важливо під час оптимізації кешу CPU (в C)?
Читаючи ці два запитання , я бачу, що розуміння поведінки кешування процесора може бути важливим при роботі з великою кількістю даних в пам'яті. Я хотів би зрозуміти, як працює кешування, щоб додати ще один інструмент до моєї панелі інструментів оптимізації. Які основні моменти в тому, як працює кеш процесора, щоб …

5
Як я можу покращити перевірку помилок та обробку помилок?
Останнім часом я намагаюся зрозуміти, що таке правильна кількість перевірок та які належні методи. У мене є кілька питань щодо цього: Який правильний спосіб перевірити наявність помилок (поганий ввід, поганий стан тощо)? Чи краще чітко перевірити наявність помилок або використовувати такі функції, як твердження, які можна оптимізувати з вашого остаточного …
13 c  testing  assertions 

2
Чому glibc підтримується окремо від GCC?
GCC є компілятором C. Glibc - це бібліотека С. Однак, чи не абсолютна необхідність компілятора та стандартної бібліотеки, поєднаної разом як реалізація C? Наприклад, бібліотека С містить ABI і конкретний компілятор такі речі , як <limits.h>, <stdint.h>і т.д., який відрізняється між укладачами і API. А деталі на кшталт "як викликати …
13 c  gcc 

6
"Напишіть асемблер в C." Навіщо писати машинний перекладач для мови низького рівня мовою вищого рівня?
Мій інструктор з класу мікропроцесорів дав нам завдання і сказав: "Напишіть асемблер в C." - Мій коханий професор Тож це здалося мені трохи нелогічним. Якщо я не помиляюся, мова монтажу - це перший крок від машинного коду до подорожі мовами вищого рівня. Я маю на увазі, що мова С є …

3
Як зберігаються негативні підписані значення?
Я переглядав це відео про максимальні та мінімальні значення підписаних цілих чисел. Візьмемо приклад позитивного підписаного значення - 0000 0001 Перший біт позначає, що число є позитивним, а останні 7 біт - самим числом. Тож це легко інтерпретується як +1. Тепер візьмемо приклад негативного підписаного значення - 1000 0000, яке …

4
C проект уникнення конфліктів імен
Я намагаюся знайти практичні поради в реальному світі щодо конвенцій щодо іменування функцій для проекту середньої величини бібліотеки C. Мій проект бібліотеки розділений на декілька модулів та підмодулів із власними заголовками, і він слідує стилю OO (усі функції приймають певну структуру як перший аргумент, без глобалістів тощо). Тут закладено щось …

6
Імена конвенцій, що використовуються для змінних та функцій у C [closed]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для обміну стеками програмного забезпечення. Закрито 4 роки тому . Під час кодування великого проекту в CI виникла проблема. Якщо я продовжую писати більше коду, тоді настане час, коли мені …
13 c  naming 

9
Масив чи Маллок?
Я використовую наступний код у своїй програмі, і він працює чудово. Але мені цікаво, чи краще зробити це з малаком або залишити його таким, яким він є? function (int len) { char result [len] = some chars; send result over network }
13 c 

8
Чи завжди рядки C недійсні, або це залежить від платформи?
Зараз я працюю з вбудованими системами і з'ясовую способи реалізації рядків на мікропроцесорі без операційної системи. Поки що я роблю, це просто використовувати ідею мати покажчики символів, що припиняються NULL, і трактувати їх як рядки, де NULL означає кінець. Я знаю, що це досить часто, але чи завжди ви можете …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.