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


Указатель выражений: *для PTR++, *++PTR и ++*ПТР

недавно я столкнулся с этой проблемой, которую я не могу понять сам. что означают эти три выражения действительно в смысле? *ptr++ *++ptr ++*ptr Я пробовал Ричи. Но к сожалению не смог уследить за тем, что он рассказал об этих 3-х операциях. Я знаю, что все они выполняются для увеличения указателя/указанного значения. Я также могу предположить, что может быть много вещей о приоритете и порядке оценки. Как один сначала увеличивает указатель, затем извлекает содержимое этого указателя, просто ...

#ifdef vs #if-что лучше / безопаснее в качестве метода включения / отключения компиляции определенных разделов кода?

это может быть вопрос стиля, но в нашей команде разработчиков есть небольшой разрыв, и мне было интересно, есть ли у кого-нибудь еще идеи по этому вопросу... в принципе, у нас есть некоторые отладочные операторы печати, которые мы отключаем во время нормальной разработки. Лично я предпочитаю делать следующее: //---- SomeSourceFile.cpp ---- #define DEBUG_ENABLED (0) ... SomeFunction() { int someVariable = 5; #if(DEBUG_ENABLED) printf("Debugging: someVariable == %d", someVariable); # ...

Неопределенная ссылка на `pow ' и 'floor'

Я пытаюсь сделать простой калькулятор Фибоначчи на C, но при компиляции gcc говорит мне, что я пропускаю функции pow и floor. Что случилось? код: #include <stdio.h> #include <math.h> int fibo(int n); int main() { printf("Fib(4) = %d", fibo(4)); return 0; } int fibo(int n) { double phi = 1.61803399; return (int)(floor((float)(pow(phi, n) / sqrt(5)) + .5f)); } выход: gab@testvm:~/work/c/fibo$ gcc fib.c -o fibo /tmp/ccNSjm4q.o: In function `fibo' ...

Генерация случайных чисел после нормального распределения в C / C++

кто-нибудь знает, как я могу легко генерировать случайные числа после нормального распределения в C/C++ ? http://www.mathworks.com/access/helpdesk/help/toolbox/stats/normrnd.html Я не хочу использовать какой-либо из Boost. Я знаю, что кнут говорит об этом, но у меня нет книги под рукой сейчас. ...

Как объединить две строки в C?

Как добавить две строки? пробовал name = "derp" + "herp";, но я получаю ошибку: выражение должно иметь интегрального или перечислимого типа ...

C указатели: указывая на массив фиксированного размера

этот вопрос выходит к гуру C там: В C, можно объявить указатель следующим образом: char (* p)[10]; .. который гласит, что этот указатель указывает на массив из 10 символов. Аккуратная вещь об объявлении такого указателя заключается в том, что вы получите ошибку времени компиляции, если вы попытаетесь назначить указатель массива разного размера p. это также даст вам ошибку времени компиляции, если вы попытаетесь присвоить значение простого указателя char С. Я попытался это с помощью GCC, и эт ...

Почему в стандартных библиотеках C++ нет int pow(int base, int exponent)?

Я чувствую, что я просто не могу найти его. Есть ли причина, по которой функция c++ pow не реализует функцию "power" для чего-либо, кроме поплавков и двойников? Я знаю, что реализация тривиальна, я просто чувствую, что делаю работу, которая должна быть в стандартной библиотеке. Надежная функция питания (т. е. обрабатывает переполнение некоторым последовательным, явным образом) неинтересно писать. ...

Как отправить простую строку между двумя программами с помощью труб?

Я пробовал искать в сети, но там почти нет ресурсов. Достаточно привести небольшой пример. изменить Я имею в виду, что две разные программы C общаются друг с другом. Одна программа должна отправить "Привет", а другая должна получить его. Что-то вроде того. ...

Использование scanf () в программах на C++ быстрее, чем использование cin?

Я не знаю, правда ли это, но когда я читал FAQ на одном из проблемных сайтов, я нашел что-то, что привлекло мое внимание: Проверьте свои методы ввода / вывода. В C++ использование cin и cout слишком медленно. Используйте их, и вы гарантированно не сможете решить любую проблему с приличным количеством ввода или вывода. Вместо использования printf и scanf. может кто-нибудь прояснить это? Действительно использует scanf () в C++ программы быстрее, чем с помощью cin > > что-то ? Если да, ...

Избегайте конечных нулей в printf()

Я продолжаю натыкаться на спецификаторы формата для семейства функций printf (). То, что я хочу, это иметь возможность печатать двойной (или плавающий) с максимальным заданным количеством цифр после десятичной точки. Если я использую: printf("%1.3f", 359.01335); printf("%1.3f", 359.00999); Я 359.013 359.010 вместо желаемого 359.013 359.01 кто-нибудь может мне помочь? ...

Как сгенерировать случайное целое число из диапазона

Это следует из ранее опубликованного вопроса: как сгенерировать случайное число в C? Я хочу иметь возможность генерировать случайное число из определенного диапазона, например от 1 до 6, чтобы имитировать стороны штампа. Как бы я это сделал? ...

преобразование bool в int

насколько портативно это преобразование. Могу ли я быть уверен, что оба утверждения проходят? int x = 4<5; assert(x==1); x = 4>5; assert(x==0); Не спрашивайте почему. Я знаю, что это некрасиво. Спасибо. ...

Почему printf с одним аргументом (без спецификаторов преобразования) устарел?

в книге, которую я читаю, написано, что printf С одним аргументом (без спецификаторов преобразования) является устаревшим. Он рекомендует заменить printf("Hello World!"); С puts("Hello World!"); или printf("%s", "Hello World!"); может кто-нибудь сказать мне, почему printf("Hello World!"); - это плохо? В книге написано, что она содержит уязвимости. Что это за уязвимости? ...

Есть ли альтернативная функция сна в C до миллисекунд?

у меня есть исходный код, который был скомпилирован на Windows. Я конвертирую его для работы на Red Hat Linux. исходный код включил <windows.h> заголовочный файл и программист использовал Sleep() функция для ожидания в течение нескольких миллисекунд. Это не будет работать на Linux. однако, я могу использовать sleep(seconds) функция, но это использует целое число в секундах. Я не хочу конвертировать миллисекунды в секунды. Есть ли альтернативная функция сна, которую я могу использовать с ...

Где поставить include операторы, заголовок или источник?

Я должен поместить в заголовочный файл или исходный файл? Если файл заголовка содержит инструкции include, то если я включу этот файл заголовка в свой источник, то будет ли мой исходный файл иметь все включенные файлы, которые были в моем заголовке? Или я должен просто включить их в мой исходный файл? ...

хэш-функция для строк

Я работаю над хэш-таблицей на языке C, и я тестирую хэш-функцию для строки. первая функция, которую я пробовал, это добавить код ascii и использовать по модулю (%100), но у меня плохие результаты с первым тестом данных: 40 коллизий для 130 слов. окончательные входные данные будут содержать 8 000 слов (это словарь, хранящийся в файле). Хэш-таблица объявляется как int table[10000] и содержит позицию слова в txt-файле. первый вопрос в том, какой лучший алгоритм для хэширования строки ? и как оп ...

версия OpenGL: glFlush() и glFinish()

у меня возникли проблемы с различением практической разницы между вызовом glFlush() и glFinish(). врачи говорят, что glFlush() и glFinish() будет толкать все буферизованные операции в OpenGL, так что можно быть уверенным, что они все будут выполнены, разница в том, что glFlush() сразу возвращается, где, как glFinish() блокирует, пока все операции не будут завершены. прочитав определения, я понял, что если бы я использовал glFlush() что я бы, наверное, столкнитесь с проблемой отправки большего ...

Как использовать SCNetworkReachability в Swift

Я пытаюсь преобразовать этой фрагмент кода в Swift. Я изо всех сил пытаюсь подняться с земли из-за некоторых трудностей. - (BOOL) connectedToNetwork { // Create zero addy struct sockaddr_in zeroAddress; bzero(&zeroAddress, sizeof(zeroAddress)); zeroAddress.sin_len = sizeof(zeroAddress); zeroAddress.sin_family = AF_INET; // Recover reachability flags SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr ...

Что означает "const static" в C и c++?

const static int foo = 42; Я видел это в каком-то коде здесь, на StackOverflow, и я не мог понять, что он делает. Затем я увидел некоторые путаные ответы на других форумах. Мое лучшее предположение, что он используется в C, чтобы скрыть константу foo из других модулей. Это правильно? Если да, то зачем кому-то использовать его в контексте C++, где вы можете просто сделать это private? ...

Что делает Java проще для анализа, чем C?

Я знаком с тем, что грамматики C и C++ являются контекстно-зависимая, и в частности вам нужен "lexer hack" в C. С другой стороны, у меня сложилось впечатление, что вы можете анализировать Java только с помощью 2 токенов look-ahead, несмотря на значительное сходство между двумя языками. что вам нужно изменить в C, чтобы сделать его более сговорчивым для разбора? Я спрашиваю, потому что все примеры, которые я видел Контекстная чувствительность C технически допустима, но ужасно странная. Например ...