Вопросы по С/С++ (СИ)
Re: Вопросы по С/С++ (СИ)
"обрезанный по маске" это отдельные биты проверить чтобы?
Тогда
if ( c != (PINC & 0b00000001) )
Переменная c будет сравниваться с числом полученным от наложения побитового И на значение прочитанное из порта PINC.
Тогда
if ( c != (PINC & 0b00000001) )
Переменная c будет сравниваться с числом полученным от наложения побитового И на значение прочитанное из порта PINC.
Последний раз редактировалось Kavka Пт июн 14, 2013 09:43:30, всего редактировалось 1 раз.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Реклама
- Мikа
- Потрогал лапой паяльник
- Сообщения: 343
- Зарегистрирован: Пн апр 01, 2013 15:13:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
Я был близок к истине, спасибо 
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Потому что хочу научиться.
- Мikа
- Потрогал лапой паяльник
- Сообщения: 343
- Зарегистрирован: Пн апр 01, 2013 15:13:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
Парни, а теперь вот что за вопрос (гугл не очень помог): как правильно сделать вынесеный файл имя.h и к нему обратиться.
Условно у меня есть строка, которая делает PORTB=(a+c);
Я хочу вынести эту строку в отдельный файл и прикрепить её через #include имя-файла. А потом в порграмме ставить какое-то слово, которое будет при компиляции заменяться на PORTB=(a+c);. Как это пишется? Я пробовал в АСтудии 6 создавать файл.h, но что-то я не так с функциями там пишу видимо Оо
Условно у меня есть строка, которая делает PORTB=(a+c);
Я хочу вынести эту строку в отдельный файл и прикрепить её через #include имя-файла. А потом в порграмме ставить какое-то слово, которое будет при компиляции заменяться на PORTB=(a+c);. Как это пишется? Я пробовал в АСтудии 6 создавать файл.h, но что-то я не так с функциями там пишу видимо Оо
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Потому что хочу научиться.
- Реклама
Re: Вопросы по С/С++ (СИ)
Да это не на сайт ПИКа нужно отправлять, а к Кернигану и Ричи. Неужели нельзя почитать базовую литературу, чтобы не засорять форум такими вопросами? А про гугл ты нагло врешь, все там есть.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
зачем переменная? не совсем понятно зачем она нужна.
Можно вообще не использовать сравнение в условиях
например так
if(!PINC&0b00000001){
//тут все что нужно;}
Ой
уже ответили 
Можно вообще не использовать сравнение в условиях
например так
if(!PINC&0b00000001){
//тут все что нужно;}
Ой
-
АндрейАвербах
- Потрогал лапой паяльник
- Сообщения: 345
- Зарегистрирован: Пт авг 24, 2012 09:45:40
- Откуда: Абакан, Хакасия
Re: Вопросы по С/С++ (СИ)
Всем доброго времени суток. С моим вопросом мне посоветовали идти сюда.
Только начал изучать WinAPI в С++ написал такой код.
Компилирую в Dev-C++, компилируется нормально, запускаю, вылазит мое окошко и какое-то черное окошко. Как убрать черное окошко?
Только начал изучать WinAPI в С++ написал такой код.
Код: Выделить всё
#include <windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
MessageBox(0, "Info", "Text", MB_OK);
return 0;
}
-
Tolmi
- Говорящий с текстолитом
- Сообщения: 1658
- Зарегистрирован: Вс дек 11, 2011 05:25:04
- Откуда: Киев, Украина
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Черное окошко - я так понимаю консоль.
Надо создать правильный проект, для GUI приложения.
Надо создать правильный проект, для GUI приложения.
In theory, theory and practice are the same. In practice, they're not.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
Код: Выделить всё
Как убрать черное окошко?- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Создать цикл и в нём сдвигать.
Re: Вопросы по С/С++ (СИ)
может я неверно выразился или недопонимаю что-то, но под циклическим сдвигом я понимаю сдвиг, допустим в право, при котором ушедшие разряды не пропадают а появляются с лева
Tell Me The Truth
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
ну да. можно и так понимать циклический сдвиг. но от этого не меняется сам принцип, сделать цикл и сдвигать)))
Ставим плюсы: )
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Код: Выделить всё
unsigned int i=0;
i=((i&1)<<15)|(i>>1); // вправо
i=((i&(1L<<15))>>15)|(i<<1); // влево
-
АндрейАвербах
- Потрогал лапой паяльник
- Сообщения: 345
- Зарегистрирован: Пт авг 24, 2012 09:45:40
- Откуда: Абакан, Хакасия
Re: Вопросы по С/С++ (СИ)
Написал такую штуку в учебных целях
Компилирую, компилятор пишет [Linker error] undefined reference to `TextOutA@20' ld returned 1 exit status , что делать - не пойму.
Код: Выделить всё
#include <windows.h>
#include <windowsx.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void OnDestroy(HWND);
void OnPaint(HWND);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
char szClassName[] = "MainWindow";
char szTitle[] = "My second window!";
MSG Msg;
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH) 0;
wc.lpszClassName = szClassName;
RegisterClass(&wc);
HWND hwnd = CreateWindow(szClassName, szTitle, WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, HWND_DESKTOP, 0, hInst, 0);
ShowWindow(hwnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, NULL, 0, 0))//Íå ñòàâèòü òî÷êó ñ çàïÿòîé òóò!!!
{
DispatchMessage(&Msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
HANDLE_MSG(hwnd, WM_PAINT, OnPaint);
HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);//Âìåñòî case
default:
return(DefWindowProc(hwnd, message, wParam, lParam));
}
return 0;
}
void OnDestroy(HWND)
{
PostQuitMessage(0);
}
void OnPaint(HWND hwnd)
{
char szText[] = "Òåêñò äëÿ ãëàâíîãî îêíà";
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 0, 0, szText, strlen(szText));
EndPaint(hwnd, &ps);
}
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
сделать, что просит линкер - подключить Gdi32.libАндрейАвербах писал(а):... что делать - не пойму.
PS. на подобные вопросы ответ есть здесь
-
АндрейАвербах
- Потрогал лапой паяльник
- Сообщения: 345
- Зарегистрирован: Пт авг 24, 2012 09:45:40
- Откуда: Абакан, Хакасия
Re: Вопросы по С/С++ (СИ)
После инклудов написал такую строку
Не помогает 
Код: Выделить всё
#pragma comment(lib,"gdi32")-
АндрейАвербах
- Потрогал лапой паяльник
- Сообщения: 345
- Зарегистрирован: Пт авг 24, 2012 09:45:40
- Откуда: Абакан, Хакасия
Re: Вопросы по С/С++ (СИ)
Создал всю эту штуку как проект и о чудо! все заработало даже без подключения библиотеки!
- Мikа
- Потрогал лапой паяльник
- Сообщения: 343
- Зарегистрирован: Пн апр 01, 2013 15:13:40
- Откуда: Москва
Re: Вопросы по С/С++ (СИ)
Это будет значить проверку нулевого бита порта С, и выражение будет считаться истиной, если результат логического И будет нулём?vitalik_1984 писал(а):
if(!PINC&0b00000001){
//тут все что нужно;}
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Потому что хочу научиться.


