Вопросы с тегом «c»

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

10
Разве «всегда инициализируемые переменные» не приводят к скрытию важных ошибок?
В C ++ Core Guidelines есть правило ES.20: всегда инициализировать объект . Избегайте ошибок «до установки» и связанных с ними неопределенных действий. Избегайте проблем с пониманием сложной инициализации. Упростить рефакторинг. Но это правило не помогает находить ошибки, оно только скрывает их. Предположим, что у программы есть путь выполнения, в котором …
35 c++  c 

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

8
Почему Clang / LLVM предупреждает меня об использовании default в операторе switch, где охватываются все перечисленные случаи?
Рассмотрим следующий оператор enum и 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, но я написал …

8
Почему именно Java не допускает числовые условия, такие как if (5) {…}, если C делает?
У меня есть эти две маленькие программы: С #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Джава 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 = …

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

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

13
Низкоуровневое программирование - что для меня значит? [закрыто]
В течение многих лет я размышлял над тем, что я считаю языками "низкого уровня". Для меня это означает С и сборку. Однако у меня еще не было на это времени, и при этом он никогда не был необходим. Теперь, когда я не вижу никакой необходимости, я чувствую, что должен либо …

8
Прямое использование Make считается устаревшим? [закрыто]
Поэтому я сталкивался со многими комментариями / публикациями / и т. Д., Касающимися непосредственного создания make-файлов, и того, как это глупо делать в 2015 году. Мне известны такие инструменты, как CMake, и я на самом деле довольно часто использую CMake. Дело в том, что CMake просто создает Makefile для вас …
31 c++  c  builds  make  cmake 

2
Каково происхождение препроцессора C?
Препроцессор 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); Я знаю, что int …

10
Какого типа данные хранятся в языке Си?
Я знаю, что указатели содержат адреса. Я знаю, что типы указателей «общеизвестны» на основе «типа» данных, на которые они указывают. Но указатели по-прежнему являются переменными, и адреса, которые они содержат, должны иметь тип данных. Согласно моей информации, адреса в шестнадцатеричном формате. Но я до сих пор не знаю, какой "тип" …
30 c  pointers 

12
int * i; или int * i; или int * i; [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

2
Почему строковые литералы C доступны только для чтения?
Какие преимущества строковых литералов, являющихся доступными только для чтения, оправдывают (-ies / -ied): Еще один способ выстрелить себе в ногу 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.