убивал бы за такоеСЦБист писал(а): A a;
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
убивал бы за такоеСЦБист писал(а): A a;
А где тут ссылки-то? Я вот вижу простую работу с обычными указателями.СЦБист писал(а):..жаль что вы не знаете что такое ссылки.
хотя откуда вам знать. в си их нету )))))
Очень жаль что ты не знаешь не только С или С++, но даже русского языка.Оченя жаль что тут никто не понимает не Си не С++
Так как выглядит оператор "выделения кучи" на чистом Си?СЦБист писал(а):не путай си и с++. у них разные операторы выделения кучи.
В сюхе это не соберётся - потому как тип A не известен компилятору, не говоря о потоковом убожестве с его кривопо́́пыми операторами вывода. А в плюсах с таким-же успехом можно сделать f() методом структуры. Забавный метод искать аналогию между синонимами одной и той-же сущности.СЦБист писал(а): А те кто понимают - то сразу поймут в чем аналогия.
Код: Выделить всё
[...] struct A [...] void f(A *a) {cout<<")))))))))))))) "<<a<<" "<<a->x<<endl;} int main() { A a; [...] }
"Выделение кучи" - это резервирование памяти и создание инфраструктуры для работы с этой памятью по heap схеме. В МК производится как правило в startup части кода ещё до передачи управления в main(). Оппонент же имел ввиду "динамическое выделение блока памяти" которое имеет место во время нормального исполнения программы. Тем, кто желает реально чему-то научиться, подобные очевидные мелочи как правило прощаются, в конце концов для того и форум, чтобы делиться знаниями и помогать. А вот желающих посамоутверждаться не имея за душой элементарного знания базовых понятий ждёт КМБ и бесконечные зацепки к частностям. К людям - по человечески, а троллям - тро́́ллево.botchin писал(а):Я так и не могу понять о чем въ здесь? Может мне не хватает понимание русского язъка?
Да и работа с потоками в етом виде (cout<<")))))))))))))) "<<a<<" "<<a->x<<endl) появилось впервъе в С++. В "чистом" С такое нет. Я впервъе встретил его (cout<<")))))))))))))) "<<a<<" "<<a->x<<endl) в Микрософт С7 (если паметь мне не изменяет) - первое С++ с Майкрософта.Siarzhuk писал(а):В сюхе это не соберётся ......, не говоря о потоковом убожестве ....
Код: Выделить всё
char x = 0;
x--;
if (x < 0)
std::cout << (int)x;shindax писал(а):[q
А где тут ссылки-то? Я вот вижу простую работу с обычными указателями.
То есть ты даже не знаешь какой компилятор используется Сутдией? Ты вообще хотя бы пару компиляторов (не путать с IDE) назвать можешь?в студии тип чар беззнаковый. а signed char знаковый.
Еще не хватало чтобы такой двоечник меня учить пытался.говорю сразу - я тебя учить не буду.
COKPOWEHEU писал(а):Т в Си размер и наличие знака у большинства стандартных типов данных (char, int) не стандартизовано. .
Т.е. про приставку signed ты даже не слышал?СЦБист писал(а): все что без приставки unsigned это знаковый тип.
и это стандарт. тогда бы нафик не нужны были б эти приставки.
char, unsigned char, signed char - это три отдельных типа. Знаковость первого зависит от желания тех, кто пилил используемый компилятор и, как правило, может быть изменено в настройках компилятора.СЦБист писал(а):тип чар - знаковый. тип unsigned char беззнаковый.
в студии тип чар беззнаковый. а signed char знаковый.
Стандарт С с этим не согласен:СЦБист писал(а):
все что без приставки unsigned это знаковый тип.
и это стандарт.
There are three character types, designated as char , signed char, and unsigned char.
C++ Standard §3.9.1 Fundamental types
Objects declared as characters (char) shall be large enough to store any member of the implementation’s basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types. [...]
Флаги типа char для gcc я даже приводил -fsigned-char и -funsigned-char но как и ожидалось, СЦБист не осилил.Siarzhuk писал(а):Знаковость первого зависит от желания тех, кто пилил используемый компилятор и, как правило, может быть изменено в настройках компилятора.
Код: Выделить всё
#define TRUE 1
#define FALSE 0
void Set_Bit(uint8_t *y, const uint8_t n)
{
if (n > 7) return;
uint8_t x = 1;
x <<= n;
*y |= x;
}
void Reset_Bit(uint8_t *y, const uint8_t n)
{
if (n > 7) return;
uint8_t x = 1;
x <<= n;
x = ~x;
*y &= x;
}
uint8_t Proverka_Bit(const uint8_t *y, const uint8_t n)
{
if (n > 7) return FALSE;
uint8_t x = 1;
x <<= n;
x &= *y;
if (x > 0) return TRUE;
else return FALSE;
}
Oui-i-i... Такую красоту разве что на www.radiokot.in оценят. ;-DСЦБист писал(а):Может кому-то пригодится набор функций для установки , сброса, проверки битов .