Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

kalobyte писал(а):я загуглил и там пишут, что надо в разделе с++ выбрать ключ /MT
Для VS 2008 статическая версия рантайма выбирается так: свойства проекта -> Configuration Properties->C/C++->Code Generation->Runtime Library->Multi-threaded /MT
kalobyte писал(а): LANG_RUSSIAN Russia (RU) 0x01 SUBLANG_RUSSIAN_RUSSIA
1049 это 0х0419
где взять магическое число для казахской раскладки?
в хидере WinNT.h Platform SDK:

Код: Выделить всё

#define LANG_KANNADA                     0x4b
#define LANG_KASHMIRI                    0x60
#define LANG_KAZAK                       0x3f
[...]
#define LANG_RUSSIAN                     0x19
[...]
#define SUBLANG_KAZAK_KAZAKHSTAN                    0x01    // Kazakh (Kazakhstan) 0x043f kk-KZ

Код: Выделить всё

GetKeyboardLayout function.   [...] The low word contains a Language Identifier for the input language [...] A language identifier is constructed using the MAKELANGID macro. The following illustration shows the format of the bits in a language identifier.


+-------------------------+-------------------------+
|     SubLanguage ID      |   Primary Language ID   |
+-------------------------+-------------------------+
15                    10  9                         0   bit
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Реклама
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Вопросы по С/С++ (СИ)

Сообщение pokk »

Добрый день, что-то поднадоело мне в iar предупреждение:

Код: Выделить всё

Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once)  .........
Я так понимаю iar ругается из за невидимого символа что типа не так на следующую строку перехожу, только вот какая ему разница ?
Реклама
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Chip115 »

WiseLord писал(а):Обнуляет ячейку в памяти по этому адресу.
Можно ли написать так (исходная запись *((volatile unsigned char *) (0x77200480)) = 0x00;)

Код: Выделить всё

 volatile unsigned char * 0x77200480 = 0x00;
Зачем нужна первая звездочка?
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Аватара пользователя
GARMIN
Держит паяльник хвостом
Сообщения: 953
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение GARMIN »

Первая звёздочка показывает, что по этому адресу лежит указатель на ячейку памяти, которую ты обнуляешь.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

Chip115 писал(а):

Код: Выделить всё

 volatile unsigned char * 0x77200480 = 0x00;
Нельзя. Вы пытаетесь объявить указатель на unsigned char с именем 0x77200480 и инициализировать его в 0. Имена переменных, начинающиеся цифрами, запрещены - компилятор осмотрит вас с сочуствующим недоумением. ;)

0x77200480 - просто числовой литерал;
(unsigned char*)0x77200480 - приведение типа - результат этой операции - указатель, который уже можно в оном качестве скормить компилятору. Указывает на область памяти по соответствующему адресу;
*(unsigned char*)0x77200480 - разыменование указателя - получение доступа на чтение из (если справа) либо на запись в (если слева) область/области памяти на которую указывает указатель. Тип указателя определяет размер модифицируемой памяти - в данном случае 1 байт.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Реклама
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

pokk писал(а):

Код: Выделить всё

Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once)  .........
Стандартный EOL для Windows - CR/LF, у вас-же, вероятно, исходные тексты содержат строчки, добавленые в Unix/Mac редакторах, либо полностью используют LF в качестве концов строк. Решение - открыть тексты в редакторе, менее дубовом чем Notepad и сохранить с родными для хост-системы концами строк. ЕМНИП Notepad++ такое может, сам пользуюсь более мне привычным vim-ом.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Реклама
Аватара пользователя
Chip115
Сверлит текстолит когтями
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Chip115 »

Siarzhuk писал(а):
Chip115 писал(а):

Код: Выделить всё

 volatile unsigned char * 0x77200480 = 0x00;
Нельзя. Вы пытаетесь объявить указатель на unsigned char с именем 0x77200480 и инициализировать его в 0. Имена переменных, начинающиеся цифрами, запрещены - компилятор осмотрит вас с сочуствующим недоумением. ;)

0x77200480 - просто числовой литерал;
(unsigned char*)0x77200480 - приведение типа - результат этой операции - указатель, который уже можно в оном качестве скормить компилятору. Указывает на область памяти по соответствующему адресу;
*(unsigned char*)0x77200480 - разыменование указателя - получение доступа на чтение из (если справа) либо на запись в (если слева) область/области памяти на которую указывает указатель. Тип указателя определяет размер модифицируемой памяти - в данном случае 1 байт.
Спасибо что разжевали! Еще путаюсь с этими указателями )
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Вопросы по С/С++ (СИ)

Сообщение kalobyte »

Siarzhuk писал(а):// Kazakh (Kazakhstan) 0x043f kk-KZ
что-то я не понял, откуда 04?
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
Siarzhuk писал(а):Для VS 2008 статическая версия рантайма выбирается так
я там и выбрал, но все равно просит новую длл
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

kalobyte писал(а):// Kazakh (Kazakhstan) 0x043f kk-KZ
что-то я не понял, откуда 04?
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
Aufmerksamkeit über Alles. Гляньте на формат этого ид ещё раз. ;)
0x01 << 10
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Вопросы по С/С++ (СИ)

Сообщение kalobyte »

и что? :dont_know:
эти цифры мне ни о чем не говорят
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
вот тут этот макрос
а как руками без него сделать? зачем писать лишний код
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

kalobyte писал(а):а как руками без него сделать?
искомое число как бы уже пролетало:

Код: Выделить всё

// Kazakh (Kazakhstan) 0x043f kk-KZ
kalobyte писал(а):зачем писать лишний код
Оригинальный спицылист уже сократил "лишний" код - уж скоро как неделю его хамонокод разгребаете. ;) Хотя он скорее всего тупо в отладчике коды подсмотрел.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Вопросы по С/С++ (СИ)

Сообщение kalobyte »

Siarzhuk писал(а):Оригинальный спицылист уже сократил "лишний" код
теперь понятно :evil:
я думал он те коды из таблицы просто взял икаким-то макаром слепил
ну раз макрос делает, то поковыряю его

а как отвязать от новых длл 2013 студии? те ключи не сработали
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: Вопросы по С/С++ (СИ)

Сообщение Siarzhuk »

kalobyte писал(а):а как отвязать от новых длл 2013 студии? те ключи не сработали
Я максимум смог в 2010 проверить - сначала собрал статическую версию в 2008 затем сконвертировал в 2010 - при просмотре в depends.exe зависимостей на msvcrtxxx.dll нету. Попробуйте открыть мой проект (http://siarzhuk.spdns.org/ruslat-2010.zip) в 2013 студии - может поможет разобраться.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Вопросы по С/С++ (СИ)

Сообщение kalobyte »

посмотрел,, сконвертил проект в 2013
собрал
зависимостей нет, есть только базовый msvcrt
свой проект пересобрал - зависимостей нет:?
хер знает чего ему надо было
поставил мт и зависимость пропала, а в тот раз так же ставил и была :facepalm:
осталось с макросом разобраться
тематические ответы только в форуме, в приват не пишите
Alpout
Открыл глаза
Сообщения: 77
Зарегистрирован: Вт сен 27, 2011 09:27:40

Re: Вопросы по С/С++ (СИ)

Сообщение Alpout »

Не могу понять, почему не компилируется некоторые строки кода, например сложения умножения? Хотя параметры заданы как

Код: Выделить всё

9:                 static unsigned char Height,x,y;
Вложения
Безымянный.JPG
(38.49 КБ) 530 скачиваний
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение ARV »

да что тут понимать... лишние они, точнее - не дающие какого-либо результата, вот и не компилируются.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Alpout
Открыл глаза
Сообщения: 77
Зарегистрирован: Вт сен 27, 2011 09:27:40

Re: Вопросы по С/С++ (СИ)

Сообщение Alpout »

ARV писал(а):да что тут понимать... лишние они, точнее - не дающие какого-либо результата, вот и не компилируются.
я прообовал их выводить в portc, но ничо не изменилось
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение ARV »

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

Мой уютный бложик... заходите!
Alpout
Открыл глаза
Сообщения: 77
Зарегистрирован: Вт сен 27, 2011 09:27:40

Re: Вопросы по С/С++ (СИ)

Сообщение Alpout »

ARV писал(а):я и говорю, результат этих операций нулевой, вот они и не компилируются. вы подумайте сами...
ну примерно понял, что Вы имеете ввиду. Переменная у присвоил значение TMR0, потому что x ниче не представляет, то есть х=0?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение ARV »

ну типа того
после того, как вы 256 используете множителем в выражении, где все операнды - однобайтные числа, нелепо ожидать, что в младшем байте результата будет что-либо, кроме 0.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «Разные вопросы по МК»