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

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

10
Чи "завжди ініціалізація змінних" не призводить до того, що важливі помилки приховуються?
Основні вказівки C ++ мають правило ES.20: Завжди ініціалізувати об'єкт . Уникайте використаних раніше встановлених помилок та пов'язаних з ними невизначених поведінок. Уникайте проблем із розумінням складної ініціалізації. Спростіть рефакторинг. Але це правило не допомагає знаходити помилок, воно лише їх приховує. Припустимо, що програма має шлях виконання, де вона використовує …
35 c++  c 

8
Чому Clang / LLVM попереджає мене про використання за замовчуванням у операторі комутатора, де охоплені всі перелічені випадки?
Розглянемо наступне твердження enum and switch: typedef enum { MaskValueUno, MaskValueDos } testingMask; void myFunction(testingMask theMask) { switch (theMask) { case MaskValueUno: {}// deal with it case MaskValueDos: {}// deal with it default: {} //deal with an unexpected or uninitialized value } }; Я програміст Objective-C, але це я написав …

5
Коли має сенс спершу скласти власну мову до коду С?
Коли розробляється власна мова програмування, коли має сенс написати перетворювач, який приймає вихідний код і перетворює його в код C або C ++, щоб я міг використовувати існуючий компілятор, наприклад, gcc, щоб закінчити машинний код? Чи є проекти, які використовують такий підхід?

8
Чому саме Java не дозволяє числові умовні умови, такі як if (5) {…}, якщо C?
У мене є ці дві маленькі програми: С #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Java class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } яке повідомляє про помилку: …
33 java  c  type-systems 

5
Чи слід ініціалізувати структури C через параметр або значення повернення? [зачинено]
Компанія, в якій я працюю, ініціалізує всі їх структури даних за допомогою функції ініціалізації: //the structure typedef struct{ int a,b,c; } Foo; //the initialize function InitializeFoo(Foo* const foo){ foo->a = x; //derived here based on other data foo->b = y; //derived here based on other data foo->c = z; //derived …

7
Пишіть на С для виконання? [зачинено]
Я знаю, що досить часто чую, що C, як правило, має перевагу у порівнянні з C ++. Я не думав нічого іншого про це, поки не зрозумів, що MSVC навіть не підтримує найновіший стандарт C, але найновіший підтримує його C99 (наскільки я знаю). Я планував написати бібліотеку з деяким кодом …

11
typedefs та #defines
Усі ми однозначно використовували typedefs і #defines той чи інший час. Сьогодні, працюючи з ними, я почав розмірковувати над річчю. Розглянемо наведені нижче 2 ситуації для використання intтипу даних з іншим іменем: typedef int MYINTEGER і #define MYINTEGER int Як і вищезгадана ситуація, у багатьох ситуаціях ми можемо дуже добре …

13
Програмування на низькому рівні - що це для мене? [зачинено]
Протягом багатьох років я розглядав питання про те, що я вважаю "низьким рівнем" мов. Для мене це означає C і збірку. Однак у мене ще не було часу на це, і це ніколи не було необхідним. Тепер, оскільки я не бачу ніякої необхідності, я відчуваю, що мені слід або просто …

8
Чи безпосередньо використання Марк вважається застарілим? [зачинено]
Тому я стикався з багатьма коментарями / публікаціями / тощо, що стосуються створення файлів безпосередньо, і як це нерозумно робити в 2015 році. Я знаю такі інструменти, як CMake, і я фактично використовую CMake досить часто. Вся справа в тому, що CMake просто створює Makefile для вас і допомагає зняти …
31 c++  c  builds  make  cmake 

2
Яке походження препроцесора С?
Препроцесор C приєднаний до C, але він має зовсім інший синтаксис від основної мови: синтаксично значущий пробіл (кінець рядка завершує оператор, пробіл після макросу визначає початок списку заміни) Блоки на основі ключових слів замість дужок, elifзамістьelse if визначення на основі ключових слів, а не декларація-відображає використання, немає =для визначення значення …
30 c  history  macros 

5
Якщо число завелике, воно перекинеться на наступне місце пам'яті?
Я переглядав програмування на С і є лише кілька речей, які мене турбують. Візьмемо для прикладу цей код: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i<5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); Я знаю, що …

10
Що таке "тип" даних, які містять покажчики мовою С?
Я знаю, що покажчики містять адреси. Я знаю, що типи покажчиків "загалом" відомі на основі "типу" даних, на які вони вказують. Але покажчики все ще є змінними, і адреси, які вони містять, повинні мати "тип" даних. За моєю інформацією, адреси у шістнадцятковому форматі. Але я досі не знаю, який "тип" …
30 c  pointers 


2
Чому буквені літери C рядки лише для читання?
Яка перевага рядкових літералів, що читаються лише для читання, виправдовує (-ее / -ій): Ще один спосіб застрелити себе в ногу char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ Неможливість елегантно ініціалізувати масив слів для читання та запису в один рядок: char *foo[] = { "bar", "baz", "running out …
29 c  memory  strings 

10
Хіба використання змінних вказівника не є головною пам'яттю?
У таких мовах, як C і C ++, при використанні покажчиків на змінні нам потрібно ще одне місце пам'яті для зберігання цієї адреси. Так це не пам’ять накладні? Як це компенсується? Чи використовуються покажчики у критично важливих для часу додатках?
29 c++  c  pointers 

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