Форум программистов, компьютерный форум CyberForum.ru

#define sqr(a) (a)*(a) - зачем так много скобок? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, принадлежит ли точка кольцу, определяемому окружностями http://www.cyberforum.ru/cpp-beginners/thread1124262.html
Вот сама задача: Определить, принадлежит ли точка А(а1, а2) кольцу, определяемому окружностями: x2 + y2 = 1 и x2 + y2 = 16. С чего можно было начать?
C++ Посоветуйте хороший компилятор Посоветуйте хороший компилятор для С,который был бы просто в применении,так как я только начинаю программировать. http://www.cyberforum.ru/cpp-beginners/thread1124258.html
C++ Проверка введенных данных; выполнение кода по условию
#include "stdafx.h" #include "conio.h" #include "math.h" int _tmain(int argc, _TCHAR* argv) { float a, b, c, x, res; printf("Input x - ");
C++ Напечатать букву, которая входит в наибольшее количество слов этой последовательности
Дана непустая последовательность из строчных латинских букв, между соседними словами - запятая, за последним словом точка. Напечатать букву, которая входит в наибольшее количество слов этой последовательности. Программа уже готова. Только надо понять как она работает. Ребята если не трудно объясните что происходит на каждой строке. Простыми словами. int main(int argc, char* argv) { int...
C++ Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной http://www.cyberforum.ru/cpp-beginners/thread1124231.html
Здравствуйте. нужно сделать задание, Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной. Кто может? Заранее Спасибо!!!! Добавлено через 46 минут up up Добавлено через 46 минут up up
C++ Не работает код, пишет что-то типа нет заголовка в другой вкладке компилятора #include <iostream> #include <climits> #include <array> using namespace std; int main() { array <char, 30> actor; actor='M'; cout << actor; } подробнее

Показать сообщение отдельно
kupnu4
26 / 26 / 9
Регистрация: 03.05.2013
Сообщений: 71
19.03.2014, 20:30     #define sqr(a) (a)*(a) - зачем так много скобок?
#define обрабатывается препроцессором. препроцессор - просто текстовый редактор. и он не думая о логике скопирует параметр из sqr в "тело". для этого и нужны скобки.
Пример:
sqr(a) заменится на a*a - то чего и хочется программисту, а sqr(a+1) даст в результате а+1*а+1. согласитесь, не совсем этого вы ожидали от этой операции. для того и нужны скобки и потому без них работает не так как хочется.
 
Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru