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

C - это язык программирования общего назначения, используемый для системного программирования (ОС и встраиваемых), библиотек, игр и кроссплатформенности. Этот тег следует использовать с общими вопросами, касающимися языка C, как это определено в стандарте ISO 9899 (последняя версия 9899: 2018, если не указано иное, а также для запросов, специфичных для версии, с c89, c99, c11 и т. Д.). C отличается от C ++ и не должен сочетаться с тэгом C ++ без разумной причины.

4
Зачем возвращать NULL из main ()?
Я иногда вижу кодеров, которые используют в NULLкачестве возвращаемого значения в программах main()на C и C ++, например что-то вроде этого: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Когда я компилирую этот код с помощью gcc, я получаю предупреждение: предупреждение: возвращение делает целое число из указателя без приведения …
10 c++  c  null  return  return-value 

1
MATLAB больше не выгружает MEX-файлы после обновления до macOS Mojave
В MATLAB clear mexвыгружает все MEX-файлы из памяти (если они не заблокированы). В предыдущих версиях macOS я мог заново скомпилировать MEX-файл и запустить измененную версию без перезапуска MATLAB, просто выполнив clear mexкоманду. Это больше невозможно при Мохаве. Например, возьмем этот тривиальный MEX-файл ( get_data_pointer.c): #include "mex.h" void mexFunction( int nlhs, …

5
Динамическое связывание - Linux Vs. Windows
Под Windows, когда я компилирую код C / C ++ в проекте DLL в MSVC, я получаю 2 файла: MyDll.dll MyDll.lib где, насколько я понимаю, MyDll.libсодержит какую-то таблицу указателей с указанием расположения функций в dll. При использовании этой dll, скажем, в exe-файле, MyDll.libон внедряется в exe-файл во время компоновки, поэтому …

4
Как массивы символов должны использоваться в качестве строк?
Я понимаю, что строки в C - это просто символьные массивы. Поэтому я попробовал следующий код, но он дает странные результаты, такие как вывод мусора или сбой программы: #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } Почему это не работает? Он компилируется чисто с gcc …

2
Как проверить, является ли указатель void (void *) одним из двух типов данных?
Я пишу функцию, где я хотел бы принять 2 typeс параметров. A string(символ *) А structureгде будет n элементов. И чтобы достичь этого, я думаю об использовании простого void *типа параметра. Но я не знаю, как проверить, является ли параметр того или иного типа, безопасно.
10 c  gcc  types  clang 

2
Что происходит, если неопределенное поведение C ++ соответствует определенному поведению C?
У меня есть *.cppфайл, который я компилирую с C ++ (не компилятор C). Содержащая функция опирается на приведение (см. Последнюю строку), которое, кажется, определено в C (пожалуйста, исправьте, если я ошибаюсь!), Но не в C ++ для этого специального типа. [...] C++ code [...] struct sockaddr_in sa = {0}; int …

4
Вычисление вложенного корня в C
Меня попросили вычислить следующее вложенное корневое выражение, используя только рекурсию . Я написал код ниже, который работает, но они позволили нам использовать только одну функцию и 1 вход nдля цели, а не 2, как я использовал. Может кто-нибудь помочь мне преобразовать этот код в одну функцию, которая будет вычислять выражение? …
9 c  recursion  sqrt 

1
C основной параметр
Я написал код, который должен отображать основные параметры, но когда я скомпилировал его и набрал "*", программа показывает структуру моего файла. Команда в cmd выглядит так:program.exe 1 2 3 * #include <stdio.h> #include <stdlib.h> int main(int argc, char const* argv[]) { for (int i=0; i<argc; i++) printf("%s\n", argv[i]); return 0; …

2
В чем разница между квалификатором const в C и квалификатором const в C ++?
Я нашел комментарий пользователя R .. : C и C ++ - это не один и тот же язык. В частности, C не constимеет ничего общего с C ++ const. Я знаю, что одно отличие между constклассификатором в C и constклассификатором в C ++ заключается в его связи по умолчанию. …

1
Преобразование в void ** на разных компиляторах
Я запускаю следующий код через разные компиляторы: int main() { float **a; void **b; b = a; } Из того, что я был в состоянии собрать, void **это не общий указатель , который означает , что любое преобразование из другого указателя не должен составлять по крайней мере , бросить предупреждение. …
9 c++  c  cuda 

1
Может ли указатель на неполный тип быть неполным?
Может int (*)[]быть неполного типа? C 2018 6.2.5 1 говорит: В различных точках в единице перевода тип объекта может быть неполным (без достаточной информации для определения размера объектов этого типа) или полным (имеющим достаточную информацию). Таким образом, кажется, что если размер типа известен, тип завершен. 6.2.6.1 28 указывает, что определенные …

1
Запретить процессу открывать новый дескриптор файла в Linux, но разрешать получение файловых дескрипторов через сокеты
В настоящее время я работаю над проектом, в котором у меня есть родительский процесс, который устанавливает пару сокетов, разветвляется, а затем использует эту пару сокетов для связи. Дочерний, если он хочет открыть файл (или любой другой ресурс, основанный на дескрипторе файла), должен всегда идти к родителю, запрашивать ресурс и получать …
9 c  linux  system-calls 


1
CHAR_WIDTH необъявленный
Я получаю сообщение об ошибке ‘CHAR_WIDTH’ undeclared при попытке скомпилировать эту простую программу: #include <stdio.h> #include <limits.h> int main() { printf("CHAR_BIT = %d\n", CHAR_BIT); printf("CHAR_WIDTH = %d\n", CHAR_WIDTH); return (0); } с gcc ./show_char_width.c -o show_char_width и gcc: GNU C17 (Ubuntu 8.3.0-6ubuntu1) версии 8.3.0 (x86_64-linux-gnu), скомпилированная GNU C версии 8.3.0, …
9 c  gcc 

1
«Недопустимая инструкция по аппаратному обеспечению» из очень простого кода
Разрабатывая сомнительную претензию , я написал эту небольшую тестовую программуnoway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } Тестируя это, я получаю: $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction ./a.out Wat. Если я компилирую …

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