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

9
Как работает sizeof с разыменованием указателя на массив?

Здесь у меня есть указатель ptrна массив arrиз 4 целых чисел. ptrуказывает на весь массив. ptr[0]или *ptrуказывает на первый элемент массива, поэтому добавление 1 к ptr[0]дает адрес второго элемента массива. Я не могу понять, почему использование sizeof(ptr[0])дает размер всего массива, 16 байтов,...

9
+ (+ k--) выражение в C

Я видел этот вопрос в тесте, в котором мы должны сообщить вывод следующего кода. #include<stdio.h> int main(){ int k = 0; while(+(+k--)!=0) k=k++; printf("%d\n", k); return 0; } Выход есть -1. Я не уверен, почему это ответ, хотя. Что означает выражение +(+k--)в...

9
GRPC: сделать высокопроизводительный клиент на Java / Scala

У меня есть сервис, который передает сообщения с довольно высокой скоростью. В настоящее время он обслуживается akka-tcp и составляет 3,5 миллиона сообщений в минуту. Я решил попробовать grpc. К сожалению, это привело к гораздо меньшей пропускной способности: ~ 500 тыс. Сообщений в минуту и ​​даже...

9
Как мне создать .proto файлы или использовать Code First gRPC из классов C #?

Я хочу использовать gRPC с .NET core 3 в основном веб-приложении asp.net. Как мне сгенерировать необходимый файл .proto из существующего класса C # и объектов модели? Я не хочу переписывать файл .proto, который отражает существующий код, я хочу, чтобы файл .proto генерировался автоматически из...

9
Как проверить, установлена ​​ли Apple Music на устройстве пользователя?

Я делаю музыкальное приложение со Swift. Приложение позволяет пользователям воспроизводить музыку через подписку на Apple Music через приложение Apple Music. Я могу проверить, есть ли у пользователя подписка на Apple Music через: SKCloudServiceController().requestCapabilities {...

9
foo (void *) против foo (void *)

Говоря функционально и синтаксически, есть ли разница между функцией, прототип которой int foo(void)и int foo(void *)? Я знаю разницу между, например, int bar(int)и int bar(int *)- один из них ищет int, а другой ищет указатель int. Ведет ли voidсебя так...

9
Оптимизация JDBC Oracle: включить кэширование PreparedStatement в загрузочном приложении Spring

У меня есть приложение Spring Boot REST, которое подключено к базе данных Oracle. Мы используем JDBC, используя JdbcTemplate. Свойства базы данных Oracle получаются через эти 3 настройки application.properties : spring.datasource.url spring.datasource.username spring.datasource.password Это...

9
C указатель на объявление массива с побитовым и оператором

Я хочу понять следующий код: //... #define _C 0x20 extern const char *_ctype_; //... __only_inline int iscntrl(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); } Он происходит из файла ctype.h из исходного кода операционной системы obenbsd. Эта функция проверяет,...

9
Что такое инкапсуляция во время компиляции в C?

Когда я исследовал преимущества C над C ++, я наткнулся на этот параграф: Стандартным способом инкапсуляции в C является предварительное объявление структуры и доступ к ее данным только через функции. Этот метод также создает инкапсуляцию времени компиляции. Инкапсуляция времени компиляции...

9
Почему моя программа застревает во время работы программы mandelbrot brainf ***?

Я хотел улучшить свои навыки C, поэтому я ищу идеи некоторых программ. Кто-то предлагает создать простой интерпретатор Brainf ***, а затем компилятор. И вот я здесь. Я создал интерпретатор, и он работает, как и ожидалось, за исключением программы Мандельброта: A mandelbrot set fractal viewer in...

9
«Недопустимая инструкция по аппаратному обеспечению» из очень простого кода

Разрабатывая сомнительную претензию , я написал эту небольшую тестовую программу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. Если я...

9
От естественного языка к выражению C ++

Назначение: Переведите следующие выражения на естественном языке в выражения C ++. Предположим, что все переменные являются неотрицательными числами или логическими (со значением true или false). Естественный язык: Либо a, либо b оба имеют значение false, либо c соответствует true, но не оба. Мое...

9
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...

9
Разрешено ли добавлять ноль к нулевому указателю?

Я знаю, что арифметика указателей запрещена для нулевых указателей. Но представьте, у меня есть что-то вроде этого: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin()...

9
Почему LLVM выделяет избыточную переменную?

Вот простой C-файл с определением перечисления и mainфункцией: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Он переносится в следующий LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, align 4 store i32 0, i32* %1, align 4 store...

9
Может ли указатель на неполный тип быть неполным?

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

9
Запретить процессу открывать новый дескриптор файла в Linux, но разрешать получение файловых дескрипторов через сокеты

В настоящее время я работаю над проектом, в котором у меня есть родительский процесс, который устанавливает пару сокетов, разветвляется, а затем использует эту пару сокетов для связи. Дочерний, если он хочет открыть файл (или любой другой ресурс, основанный на дескрипторе файла), должен всегда идти...

9
Преобразование в void ** на разных компиляторах

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