Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2010, 21:45   #1
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
Вопрос Исходники на С#

Доброе время суток... только начал изучать язык С, и мне не совсем понятны некоторые части программ...литературы нормальной найти не удалось...если кому не трудно, подскажите пожалуйста, как работают определенные моменты и почему такие результаты?

Исходник №1:

Код:
#include <stdio.h>
#include <conio.h>
#define PRINT(format,a) printf(#a"=%"#format"\n",a)//назначение символов
int integer=5;
char character='5';
char *string="5";

int main()
{
	PRINT(d,*string); 
	PRINT(d,character); 
	PRINT(d,integer);
	PRINT(s,string); 
	PRINT(c,character);
	PRINT(c,integer=53);
	PRINT(d,('5'>5));//почему такой результат
	PRINT(d,string);
	int sx=-8; //представление в 2СС
	unsigned ux=-8;//представление в 2СС
	PRINT(o,sx);
	PRINT(o,ux);
	PRINT(o,sx>>3);//не понятно, почему такой результат
	PRINT(o,ux>>3);
	PRINT(d,sx>>3);
	PRINT(d,ux>>3);
	getch();
	return 0;

}
Исходник № 2:

Код:
#include <stdio.h>
#include <conio.h>
#define PR(x) printf(#x"=%.8g\t",(double)x)// что происходит в этих
#define NL putchar('\n')                          //директивах препроцессора
#define PRINT(x1,x2,x3,x4) PR(x1); PR(x2); PR(x3); PR(x4); NL//define?
int main()
{
	double d;
	float f;
	long l;
	int i;
	i=l=f=d=100/3; PRINT(i,l,f,d);//почему здесь все выводится как int
	d=f=l=i=100/3; PRINT(i,l,f,d);
	l=i=f=d=100/3.; PRINT(i,l,f,d);//а здесь f и d как положено?
	d=f=l=i=(double)100/3;
	PRINT(i,l,f,d);
	i=l=f=d=(double)(100000/3);
	PRINT(i,l,f,d);
	d=f=l=i=100000/3; 
	PRINT(i,l,f,d);
    getch();
	return 0;
}
Исходник № 3:

Код:
#include <stdio.h>
#include <conio.h>
char input[]="sstealch1\1\11s\lwllliwl\l";
int main()
{
	int i,c;
	for (i=2; (c=input[i])!='\0'; i++)//непонятно условие
	{
		switch(c)
		{
		case 'a': putchar(c); continue;
		case '1': break;
		case 1: while ((c=input[++i])!='\1'&&c!='\0');//непонятно условие
		case 9: putchar('A');//независимо от значения case, вставляется А в 9 позицию, почему?
		case 'w':
		case 'l': putchar('k');
		default: putchar(c); continue;
		}
		putchar('G');
	}
	putchar('\n');
	getch();
	return 0;
}
После С++ почти все понятно \, за исключением таких казусов... Заранее огромное спасибо..
JeyKip вне форума Ответить с цитированием
Старый 15.01.2010, 22:28   #2
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Интересное название темы однако...
Vistar вне форума Ответить с цитированием
Старый 15.01.2010, 22:40   #3
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

ну это я по исходникам пытаюсь разобраться...))
JeyKip вне форума Ответить с цитированием
Старый 15.01.2010, 23:09   #4
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
После С++ почти все понятно
Вы хоть раз видели С++?
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 15.01.2010, 23:18   #5
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

я вообще-то с ним работаю...просто я никогда не работал с форматным вводом-выводом...

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

Последний раз редактировалось JeyKip; 15.01.2010 в 23:32.
JeyKip вне форума Ответить с цитированием
Старый 15.01.2010, 23:37   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Исходники на С#
так СиШарп или СиПлюсПлюс?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2010, 00:06   #7
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

СиШарп...но хотя эти коды работают и на С++...просто форматный ввод-вывод по большей части используется в С, поэтому так и написал...
JeyKip вне форума Ответить с цитированием
Старый 16.01.2010, 00:27   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2JeyKip
тебе сосед с пъяни сказал, что это шарп? си это емое
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.01.2010, 00:38   #9
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

буду знать...я С++ занимаюсь, для расширения знаний решил с printf и scanf разобраться...может, когда-то и пригодится...)) ну так мне сможет кто-нибудь помочь, а то в принципе бессмысленная дискуссия получается...единственное, что смог узнать, так это что написано на С..))
JeyKip вне форума Ответить с цитированием
Старый 16.01.2010, 00:51   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

мне влом расписывать про макросы. в любой книге по сям написано про них.
ну так и быть, первый камент поясню
Цитата:
#define PRINT(format,a) printf(#a"=%"#format"\n",a)
определен макрос PRINT с формальными параметрами.
оператор # используется для того, чтобы превратить аргумент, перед которым он стоит, в строку, заключенную в кавычки. пример для твоего случая:
int a = 10;
PRINT(d, a);
препроцессор преобразует это дело в :
printf("a""=%""d""\n",a);

читай лучше книжки, полезнее будет
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исходники Quake 1,2,3 MsF Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 26.08.2010 07:53
Исходники FastScript Mixasik Компоненты Delphi 0 18.07.2009 15:19
Нужны исходники girz БД в Delphi 1 17.05.2009 11:12
Исходники компилятора Simply-Art Свободное общение 1 08.07.2008 13:17
Не скачиваются исходники В_И_К_Т_О_Р О форуме и сайтах клуба 9 31.01.2008 22:06