C++ Academy
По всем вопросам- @workakkk РКН: clck.ru/3FmxJF #VRHSZ
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام C++ Academy
تُعد قناة C++ Academy (@cpluspluc) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 15 565 مشتركاً، محتلاً المرتبة 8 240 في فئة التكنولوجيات والتطبيقات والمرتبة 42 693 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 15 565 مشتركاً.
بحسب آخر البيانات بتاريخ 17 يوليو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -95، وفي آخر 24 ساعة بمقدار 3، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 17.40%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 7.20% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 709 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 121 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 23.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل c++, github, linux, api, архитектура.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“По всем вопросам- @workakkk
РКН: clck.ru/3FmxJF
#VRHSZ”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 18 يوليو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
stdout - это просто файловый дескриптор 1.
И из-за этого можно поймать очень неприятный эффект: если закрыть stdout, следующий открытый файл может получить тот же дескриптор 1.
То есть код вроде этого:
close(1);
FILE *f = fopen("output.txt", "w");
printf("hello\n");
Может записать printf не в терминал, а прямо в output.txt.
Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.
Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.
#include <stdckdint.h>
И функции вроде ckd_mul:
#include <stdckdint.h>
#include <stdint.h>
#include <stdio.h>
int main(void) {
int32_t price = 500000;
int32_t qty = 8000;
int32_t total;
if (ckd_mul(&total, price, qty)) {
puts("overflow caught, not shipped");
return 1;
}
printf("total: %d\n", total);
}
Смысл простой: если результат помещается в тип, он записывается в total.
Если произошло переполнение, функция возвращает true.
Это особенно полезно в коде, где числа приходят извне:
• размеры буферов
• цены и количества
• индексы
• длины массивов
• расчёт памяти
• сетевые пакеты
• парсеры бинарных форматов
Раньше такие проверки часто писали руками, и там легко ошибиться на границах типа.
Теперь стандартная библиотека даёт нормальный способ сказать: «умножь, но не дай мне случайно получить мусор из-за overflow».
Маленькое изменение в стандарте, но для системного кода очень приятное.2^30 элементов и больше.
Проблема возникает при вычислении середины:
mid = (low + high) / 2;
На очень больших массивах low + high может вызвать переполнение.
Правильнее писать так:
mid = low + (high - low) / 2;
В C такое переполнение может привести к выходу за границы массива и непредсказуемому поведению. В Java это обычно заканчивается ArrayIndexOutOfBoundsException.
Та же ошибка затрагивала mergesort и огромное количество других алгоритмов «разделяй и властвуй».