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

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

4
О каких рисках / уязвимостях безопасности должен знать каждый программист C? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Существует множество угроз безопасности, возникающих из-за тесного контакта с оборудованием, а …

3
Когда новые проекты C должны ориентироваться на очень старые стандарты C (> 20 лет, то есть C89)?
Иногда я вижу крупные, относительно новые проекты с открытым исходным кодом C, нацеленные на очень старые стандарты C, обычно C89. Примером является systemd. У этих проектов есть интеллектуальные люди во главе, поэтому у них, вероятно, есть хорошее обоснование этого решения, о котором я не знаю. Помимо этого преимущества сомнений, почти …
12 c  standards 

5
Есть ли недостаток в выделении огромного количества стека для одного массива во встроенной системе?
У меня обычно не возникает проблем с выбором, должны ли некоторые данные быть глобальными, статическими или размещаться в стеке (здесь нет динамического выделения, поэтому не нужно использовать кучу). Я также прочитал несколько вопросов и ответов, таких как этот, но мой вопрос более конкретный, поскольку он включает в себя огромный объем …

2
Почему массивы переменной длины стали необязательными в C 2011?
Когда в 1999 году были введены VLA, я подумал, что это отличная инновация для языка. Однако, узнав, что это стало необязательным в C 2011, мне интересно, что привело к его изменению статуса, и означает ли это, что функция фактически устарела. Если да, существует ли эквивалентное понятие автоматического управления данными динамического …

3
Разве плохо обращаться к элементам массива доступа через арифметику указателей вместо оператора []?
Я только начал учиться программировать на C, и чтобы улучшить мое понимание указателей и массивов, я попытался ссылаться на элементы массива, не создавая вообще никакого указателя: for(k1 = 0; k1 < ROW; k1++){ for(k2 = 0; k2 < COLUMN; k2++){ array[k1][k2] = k1*COLUMN + k2 + 1; printf("[%d][%d] = %d\n", …

2
Почему C до сих пор в категории языка высокого уровня? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Многие из учебников по языку программирования C говорят, что C - это язык …

1
Включают ли какие-либо заметные расширения C целочисленные типы, поведение которых не зависит от размера машинного слова?
Интересная характеристика языка C по сравнению с некоторыми другими языками состоит в том, что многие из его типов данных основаны на размере слова целевой архитектуры, а не указываются в абсолютных терминах. Хотя это позволяет использовать язык для написания кода на машинах, которые могут иметь трудности с определенными типами, это очень …

2
Почему нельзя передавать массивы как аргументы функции в C?
После этого комментария я попытался Google почему, но мой Google-фу не удалось. Комментарий по ссылке: [...] Но важно то, что массивы и указатели - это разные вещи в C. Предполагая, что вы не используете какие-либо расширения компилятора, вы, как правило, не можете передать сам массив в функцию, но вы можете …
12 c  history 

3
Как мне маркировать типы в программах на C и C ++?
В этом ответе я использовал _tв конце типы, которые в лучшем случае закончились противоречиво. Это практика, которую я использую в своих текущих проектах. typedef struct { int x; int y; } point_t; Предполагалось, что это будет соответствовать типам C из stddef.hlike size_tили ptrdiff_t. Однако, согласно некоторым комментариям в моих вопросах, …
12 c++  c  naming 

3
Можно ли скомпилировать язык более высокого уровня для читаемого C ++? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . C ++ - отличный язык во многих отношениях, но некоторые вещи, в частности, …

4
Можно ли использовать компилятор Intel C / C ++ в Linux для создания объектных файлов, которые будут связаны в Windows?
Почему? В зависимости от вашего источника, компилятор Intel может быть или, скорее всего, компилятором, генерирующим самые быстрые исполняемые файлы для архитектуры x86 (улучшение времени выполнения на 5-100%). Intel бесплатно предлагает свои компиляторы для Linux по некоммерческой лицензии (думаю, я читал, что это бесплатно где-то на их странице: Intel - Разработка …

5
Интегрировать версии git как номера сборки или нет?
Мы с коллегой по очереди обсуждали / обсуждали вопросы / преимущества интеграции версии, полученной из текущего репозитория git, в наш код при его сборке. Мы считаем, что достоинства включают в себя: Не нужно беспокоиться о человеческой ошибке при обновлении номера версии Прослеживаемость между тем, что мы находим в устройстве, и …
12 c  git  builds  build-system 

2
Насколько часто используются «вероятные» и «маловероятные» макросы?
Часто известные как likelyи unlikelyмакросы помогают компилятору узнать, будет ли ifон вводиться или пропускается. Его использование приводит к некоторым (довольно незначительным) улучшениям производительности. Я начал использовать их недавно, и я не уверен, как часто следует использовать такие подсказки. В настоящее время я использую его с проверкой ошибок ifs, которые обычно …

9
Десятое правило Гринспуна, включает ли каждый крупный проект интерпретатор Lisp? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Десятое правило Гринспуна (фактически единственное правило) гласит: Any sufficiently complicated C or Fortran …

4
В чем разница между указателем, указывающим на местоположение 0x0, и указателем, установленным в NULL?
Указатель, указывающий на 0x0000, совпадает с указателем, установленным в NULL? Если значение NULL определено на языке Си, то в какое место оно физически переводится? Это так же, как 0x0000. Где я могу найти более подробную информацию об этих понятиях?
12 c  pointers  null 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.