@pyroxar: najprawdopodobniej iomanip albo iostream sam wcześniej zaincludował algorithm, przez co tranzytywnie wylądowało dalej. ale nie należy na tym polegać, bo biblioteka standardowa w jednym kompilatorze może używać tego headera w swoim headerze, ale nie musi. i potem możesz skończyć z nieprzenośnym kodem, więc zostaw ten algorithm
  • Odpowiedz
@Aerwin jeżeli mowa o UAE to tak. Każdą swoją kartę SIM musiałem rejestrować w punkcie operatora na bazie paszportu, umowy (nawet Prepaid). Tam te zasady weszły w życie znacznie wcześniej niż w Unii.
  • Odpowiedz
No właśnie nei wiedziałem, ze tam też mają takie obostrzenia.


@Aerwin: Nawet jeszcze wieksze, bo w numer telefonu w Emiratach to wrecz Twoje 'identity'. Pelni badzo wazna role. No i oczywiscie uzywanie numeru zarejestrowanego na kogos innego jest nielegalne.
  • Odpowiedz
Kurde na codzień programuję sobie pod #linux z wykorzystaniem #gcc. Prowadzący algorytmy wymyślił sobie, że będzie programy kompilować w visualu. No dla pewności dałem koleżance do skompilowania. Tam to za #!$%@? nie chce działać. Już nie mówię o prekompilowanych headerach, które było trzeba dodać. U mnie na kompie w strict mode c++11 się wszystko zajebiście kompiluje, tylko nie w visualu.
Nosz #!$%@? XD
Nie chce mi się całego monodevelop ściągać tylko
@TMBRK: Natomiast nie ugiąłbym się w kwestii prekompilowanych nagłówków. Jeśli prowadzący ma chęć budowania tego jako projekt VS, to niech samodzielnie stworzy taki i zbuduje.

A co do zasady, to łączę się w bólu. Swego czasu wywalałem masę ładnych feature z projektu na zaliczenie, ponieważ prowadzący akceptował właśnie kompilację tylko w Visual Studio i jeszcze były to czasy gdy wsparcie dla C++11 było bardzo, bardzo ograniczone.
  • Odpowiedz
Da radę na współczesnych unixowych terminalach przechwytywać backspace poprzez getchar()? Jest zadanko w K&R w którym trzeba zamienić wpisanego taba na dosłowne "\t", backslash na dosłowne "\" oraz backspace na dosłowne "\b".

Dla taba i backslasha mi działa normalnie kod, ale dla backspace nie. I zastanawiam się, czy takie zadanie da się teraz w ogóle zrobić.
#programowanie #gcc #linux
@Saly: zrobiłem plik .hex gdzie dałem '08 08 08 0A', przerobiłem to przy użyciu xxd na plik binarny i wrzuciłem tak jak napisałeś na wejście do mojego programu.

W ten sposób zadziałało, wypisało mi dosłownie "\b\b\b" na wyjściu. Czyli program mam poprawny i w sumie tyle chciałem wiedzieć. Dzięki za pomysł :)

Bo faktycznie z tego co czytam na internecie to się obecnie nie da tego tak zrobić tak jak to
  • Odpowiedz
@bambosze_babuni: Oczywiście, patrz podlinkowany wyżej manual gcc. Jeśli dorzucę =, to wyrzuca "implicit declaration of function 'asm'" Co z reszta jest zgodne z prawda, bo wygląda to wtedy jak wywołanie f-cji asm, a nie o to chodzi. Tym bardziej, że on wyrzuca "oczekiwałem 'asm' a tam jest 'asm'" i mam takie trochę wtf.
  • Odpowiedz
@Saly: @GotoFinal: Doszedłem do tego o co chodzi, chciałem odpisać, że "tez nie działa, ale może gcc ma jakiś magiczny wyłącznik asm" i wtedy mnie tknęło, mam ustawiony -std=c11 ... no właśnie, po zmianie na domyślny poszło poprawnie. Tylko teraz mam nagle milion ostrzeżeń w innych częściach kodu. No ale, najwyraźniej w nowym C nie ma "asm", szkoda tylko, że ten komunikat jest taaaki pomocny, jak to w gcc. :)
  • Odpowiedz
Powiedzcie mi czy dobrze rozumiem (i to czego zrozumieć nie potrafię).
Mam taki kod pastebin. Jest to plik startowy wygenerowany przez IDE Atmel Studio 7.0.

/* Initialize segments */
Domyślam się, że gdzieś skądś linker wie co to za symbole i wie co jakie mają wartości (w zasadzie to on im je nadaje), żeby umieścić odpowiednie fragmenty kodu w odpowiednich fragmentach pamięci procesora. Tak?

void __libc_init_array(void);
Jak doczytałem to przeprowadza inicjalizację
#cpp #c++ #gcc #programowanie

Mireczki mam dziwny problem z kompilacją pewnego projektu w C++. Muszę ustawić pewne macro które w kodzie sprawdzanie jest #ifdef'em z poziomu kompilatora. Kompiluje przy użyciu MinGW na windowsie (g++).

Problem w tym, że w Code::Blocks dodaje do listy "defines" wpis
FW_GRAPHICS, podczasu budowania widzę, że parametr
-DFW_GRAPHICS jest przekazywany do g++ natomiast sam kod tak jakby zlewa tego i zachowuje się jakby dyrektywy nie było....
#avr #arduino #atmel #gcc #assembler
Możecie mi powiedzieć czemu jak oglądam plik asm jakiegoś programu napisanego na avr'a to kompilator nie używa rejestrów z zakresu r2-r13? I po co ciągle używa r0 i r1 do trzymania tam zera i odkładania go na stos i do zdejmowania tego zera ze stosu? Zupełnie nie rozumiem.
Dlaczego wchodząc do przerwania jest cała kombinacja typu:
push r1
push r0
lds r0, 0x005F - 5f to adres
@gorfag: http://pastebin.com/e6QVhPax
Listing przedstawia wywołanie pustej funkcji przerwania dla -O1, -O2, -O3 oraz -Os

ISR(USART_RX_vect){
};

To jakaś abstrakcja.
Odkłada r1 na stos po to, by wyzerować wartość tego rejestru i nadpisać to odłożoną na stos wartością.
To wszystko można zawrzeć w:
in r2, 0x3f
out 0x3f, r2
reti
chociaż i tak jaki jest sens odkładać rejestr stanu procesora na stos i od razu go zdejmować?
Edit: No i czemu gcc
  • Odpowiedz
Ohayo!
Budując na linuxie pluginowy runtime Kaiju natrafiłem na problem. Statyczna biblioteka runtime'owa potrafi ładować, odładować i wywołać funkcjonalność pluginowej biblioteki .so.
Problem jest z poprawnym zbudowaniem biblioteki .so:

gdy kompiluję .so z opcją -fPIC, to gcc karze mi skompilować z flagą -fPIC także libKaijuRuntime.a (której funkcjonalności to .so używa) - czy w takim razie muszę wszelkie libki używane przez .so przekompilować z flagą -fPIC?
Jeśli już przekompiluję libKaijuRuntime.a z flagą -fPIC,