- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
#include <stdio.h>
struct{int a; float b;} test()
{
return (typeof(test())){1337, 666.666};
}
int main()
{
auto a = test();
printf("%d %f\n", a.a, a.b);
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
#include <stdio.h>
struct{int a; float b;} test()
{
return (typeof(test())){1337, 666.666};
}
int main()
{
auto a = test();
printf("%d %f\n", a.a, a.b);
return 0;
}
В стандарт C23 добавили auto и теперь можно писать такую хуйню. В "Clang" работает: https://godbolt.org/z/GG3addqPb
а мржно пейсать auto auto(auto auto)?
Ведь если какой-то петух напишет допустим
то кто-то может вызвать такую говнофункцию с типом "int" а кто-то с типом "double" и это будет две разные функции, а прототип всего один. Короче хуйня какая-то. В Си нет такого, чтоб было несколько функций с одним именем
И возвращать auto она тоже не может т.к. из прототипа нихуя не ясно, какую хуйню она там может возвращать, и тогда если у нас объявлен лишь прототип
Компилятору нихуя не будет ясно, какое говно оно вернет. Это тебе даже крестопараша не скомпилирует.
Увы, можно использовать только в макросах. В функциях нельзя из-за отсутствия перегрузки.
«PHP» выводит типы, но во-первых, снаружи ничего не видно (неявность), во-вторых он тут же приведёт тип к другому, если можно (слабость).
If the type of the operand is a variably modified type, the operand is evaluated; otherwise, the operand is not evaluated.
https://en.cppreference.com/w/c/language/typeof.html
https://www.youtube.com/watch?v=58Eff70zgjQ
Чеченская Гитара•3,7 млн просмотров
10 признаков того, что ВЫ ОДНОВРЕМЕННО думаете друг о друге Карл Юнг
Юнгианка
Новинка
1,8 тыс. просмотров
в древней сишке надо было указывать: лежит переменная на стеке (тн "автоматическая") или в регистре. И там `auto` означала "автоматическая".
Потом это стало поведением по умолчанию, и это слово убрали.
Или как строки были нультерминаторами... Ой, а это до сих пор так