c- все статьи тега ➜ страница 7


Наиболее эффективный алгоритм для реверсирования битов (от MSB - >LSB до LSB - >MSB) в C [закрыто]

каков наилучший алгоритм для достижения следующего: 0010 0000 => 0000 0100 преобразование из MSB->LSB в LSB - >MSB. Все биты должны быть обращены; то есть, это не endianness-замена. ...

Почему malloc + memset медленнее, чем calloc?

известно, что calloc отличается от malloc в том, что он инициализирует память, выделенную. С calloc память обнуляется. С malloc память не очищается. так что в повседневной работе я считаю calloc как malloc+memset. Кстати, для удовольствия я написал следующий код для бенчмарка. результат сбивает с толку. код 1: #include<stdio.h> #include<stdlib.h> #define BLOCK_SIZE 1024*1024*256 int main() { int i=0; char *buf[10]; while(i<10) { ...

"Переключатель" быстрее ,чем "если"?

это switch сообщении на самом деле быстрее if заявление? я запустил код ниже в компиляторе Visual Studio 2010 x64 C++ с помощью /Ox флаг: #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX_COUNT (1 << 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = 0; i < MAX_COUNT; i++) { switch (counter % 4 + 1) { case 1: counter += 4; break; case 2: counter += 3; b ...

Почему вы должны связать математическую библиотеку в C?

если я включаю <stdlib.h> или <stdio.h> в программе на C мне не нужно связывать их при компиляции, но мне нужно связать с <math.h>, используя -lm С gcc, например: gcc test.c -o test -lm в чем причина этого? Почему я должен явно связать математическую библиотеку, но не другие библиотеки? ...

Как правильно использовать ключевое слово extern в C

мой вопрос о том, когда функция должна быть ссылка с extern ключевое слово в с. Я не вижу, когда это должно использоваться на практике. Поскольку я пишу программу, все функции, которые я использую, доступны через заголовочные файлы, которые я включил. Так почему же это было бы полезно extern чтобы получить доступ к чему-то, что не было представлено в заголовочном файле? Я мог бы подумать о том, как extern работает неправильно, и если да, то пожалуйста меня поправить. Edit: если вы extern чт ...

Инициализация обычного массива с одним значением по умолчанию [дубликат]

этот вопрос уже есть ответ здесь: Как инициализировать все члены массива к одному и тому же значению? 18 ответов C++ Примечания: Инициализация Массива имеет хороший список над инициализацией массивов. У меня есть int array[100] = {-1}; ожидая, что он будет заполнен с -1, но его нет, только первое значение и остальные-это 0, смешанные со случайными значениями. код int array[100] = {0}; работает про ...

Как преобразовать строку в целое число в C?

Я пытаюсь выяснить, есть ли альтернативный способ преобразования строки в целое число в C. Я регулярно рисую следующее в своем коде. char s[] = "45"; int num = atoi(s); Итак, есть ли лучший способ или другой способ? ...

Как проверить, является ли целое число четным или нечетным? [закрытый]

Как я могу проверить, является ли данное число четным или нечетным в C? ...

Что такое базовый указатель и указатель стека? На что они указывают?

используя исходя из Википедии, в которой DrawSquare () вызывает DrawLine (), (обратите внимание, что эта диаграмма имеет высокие адреса внизу и низкие адреса вверху.) может ли кто-нибудь объяснить мне, что ebp и esp в этом контексте? из того, что я вижу, я бы сказал, что указатель стека всегда указывает на верхнюю часть стека, а базовый указатель на начало текущей функции? Или что? edit: я имею в виду это в контексте программ windows edit2: а как же eip работы тоже? edit3: у меня есть ...

Что такое & & & операция в C

#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%dn", c); } return 0; } вывод вышеуказанной программы скомпилирован с помощью gcc - это 0 1 1 С -Wall или , gcc выдает предупреждение: warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress] как c оцениваются в вышеуказанной программе? ...

Зачем использовать двойной указатель? или Зачем использовать указатели на указатели?

когда следует использовать двойной указатель в C? Может кто-нибудь объяснить на примере? Я знаю, что двойной указатель-это указатель на указатель. Зачем мне нужен указатель на указатель? ...

Что делать Pty и тты имеешь в виду?

Я заметил, что есть много упоминаний о pty и tty в некоторых проектах с открытым исходным кодом, может кто-то может сказать мне, что они означают и в чем разница между ними? Спасибо! ...

Почему C так быстро, и почему другие языки не так быстро или быстрее?

при прослушивании подкаста StackOverflow jab продолжает придумывать, что" настоящие программисты "пишут на C, и что C намного быстрее, потому что он" близок к машине."Оставляя прежнее утверждение для другого поста, что особенного в C, что позволяет ему быть быстрее, чем другие языки? Или по-другому: что мешает другим языкам компилироваться до двоичного кода, который работает каждый бит так же быстро, как C? ...

Как заставить дочерний процесс умереть после выхода родителя?

Предположим, у меня есть процесс, который порождает ровно один дочерний процесс. Теперь, когда родительский процесс выходит по какой-либо причине (обычно или ненормально, путем kill, ^C, assert failure или что-то еще), я хочу, чтобы дочерний процесс умер. Как это сделать правильно? похожий вопрос на stackoverflow: (спрашивалось ранее) как я могу заставить дочерний процесс выйти, когда это делает родитель? (задано позже) являются ли дочерние процессы, созданные с помощью fork () автоматическ ...

C не так уж сложно: void (*(*f[]) ()) ()

Я только что видел фотографию сегодня и думаю, что буду признателен за объяснения. Итак, вот картина: Я нашел это запутанным и задался вопросом, являются ли такие коды когда-либо практичными. Я погуглил картинку и нашел другую картинку в этой reddit запись, и вот что картина: Так это "чтение по спирали" - это что-то действует? Это то, как компиляторы C разбирают? Было бы здорово, если бы были попроще объяснения этого странного кода. Помимо всего прочего, могут ли такие коды быть полезны? Е ...

Что делает (x ^ 0x1)!= 0 означает?

я наткнулся на следующий фрагмент кода if( 0 != ( x ^ 0x1 ) ) encode( x, m ); Что значит x ^ 0x1 в смысле? Это какая-то стандартная техника? ...

Как узнать, что означает 'errno'?

при вызове execl(...), Я получаю errno=2. Что это значит? Как я могу знать значение этого errno? ...

C #определение макроса для отладки печати

попытка создать макрос, который можно использовать для печати отладочных сообщений при определении отладки, например, следующий псевдокод: #define DEBUG 1 #define debug_print(args ...) if (DEBUG) fprintf(stderr, args) Как это достигается с помощью макроса? ...

Работа над удаленным проектом с Eclipse через SSH

У меня есть следующие поля: окно Windows с Eclipse CDT, коробка Linux, доступная для меня только через SSH. как компилятор, так и оборудование, необходимое для сборки и запуска моего проекта, находятся только на машине B. Я хотел бы работать" прозрачно " из окна Windows в этом проекте с помощью Eclipse CDT и иметь возможность создавать, запускать и отлаживать проект удаленно из среды IDE. Как настроить что: здание будет работать? Любые более простые решения, чем написание локального файла ...

Что это =! оператор? [дубликат]

этот вопрос уже есть ответ здесь: Что значит "=!- оператор есть? 6 ответов Я был удивлен этим кодом: if (a =! b) { // let it be on false ... } но a никогда не присваивается значение. О чем говорит этот оператор? ...