Jest to rzutowanie na wskaźnik do zmiennej typu uint8_t, a nie na zmienną. Ta gwiazdka to oznaczenie wskaźnika. Samo z siebie nic nie robi, powoduje tylko, że kompilator nie rzuca ostrzeżeniem lub błędem.
Myślę, że już otrzymałeś odpowiedź, jak to zrobić. Podejrzewam, że zmienną modul_depth masz zadeklarowaną jako uint16_t ...dlatego uint16_t musisz zamienić na uint32_t na czas tych operacji, np. przez rzutowanie typów więc powinno być: [syntax=c] procentowo=((uint32_t)modul_depth*1000)/... //wspolczynnik zmian [/syntax] ponieważ bez rzutowania kompilator...
To wiele wyjasnia, dziękuję bardzo. Korzystając z okazji chciałbym jeszcze zapytać o wyrażenie : *(int*)20000=7 Ja to rozumiem jako wpisanie do zmiennej typu int mieszczącej się pod adresem 20000 wartości 7. Samo (int*)20000 oznacza rzutowanie na wskaźnik do zmiennej typu int, zmienna mieści się pod adresem 20000, Dodanie gwiazdki * przed nawias powoduje...
PTR to nie jest rzutowanie, jakie występuje w językach wysokiego poziomu, tylko traktowanie. Po prostu jest spod adresu wskazanego zmienną pobierane WORD danych. Jako, że sama zmienna jest tylko typu bajt, to w rzeczywistości zostaną pobrane wartości ze zmiennej Byte1 i Byte2 w kolejności.
Rzeczywiście kompilator zwraca przy f_write warning. Jak to powinno się poprawnie zapisać? Należy użyć dokładnie takiego typu jakiego oczekuje funkcja, czyli UINT, a nie uint8_t. I bynajmniej nie chodzi o rzutowanie - należy zmienić typ zmiennej której adres jest przekazywany do funkcji. Zwrotne informacje z tych funkcji odbieram, ale nie chciałem...
mój błąd - musisz zostawić W jako Word, a potem dodawać wartości do zmiennej typu Long poprzez tzw. niejawne rzutowanie typów. czyli Dim W as word, L as long '... W=getadc(0) L=L+W '... L=L/10 W=L '... i dalsze obliczenia
Jeśli y będzie typem unsigned int, to jawne rzutowanie nie jest potrzebne - kompilator niejawnie zrzutuje wynik operacji na typ zmiennej y
ad.1 Aby zrozumieć co się dzieje w tej linijce musisz dowiedzieć się co to są wskaźniki i rzutowanie typów. Jeżeli restart to tablica, to: [syntax=c]x=restart[0];[/syntax] przepisze pierwszy element z tablicy do zmiennej x. Nazwa tablicy to jednocześnie wskaźnik (adres w pamięci) do tej tablicy. I na przykład: [syntax=c]x=restart[1];[/syntax] zadziała...
setButton: wydaje mi sie, ze on jedynie zapisuje informacje o tym gdzie znajduje sie button a sprawdzenie nadal ma sie odbyc dopiero w bit_is_clear? Funkcja setButton zapisuje to co jej przekazujesz, a przekazujesz wartość odczytaną z wejść. c i kopiowana do argumentu funkcji foo . Funkcje działają na kopii, więc nawet, jeśli wartość c się zmieni podczas...
Dlaczego nie działa rzutowanie tego typu ? A mógłbyś wyjaśnić, co znaczy nie działa? Bo zazwyczaj działa... [edit] Musisz tylko pamiętać, że kompilator jest uprawniony do wyrównywania ułożenia pól w strukturach w zależności od wymagań architektury procesora. Jest prawdopodobne, że pole wskaźnika payload zostanie przesunięte w pamięci (wyrównane) do...
Zasadniczo, rzutowanie (char) i inne, podobne rzutowania, nie konwertują niczego, a jedynie mówią kompilatorowi, żeby traktował zmienną jako zmienną jakiegoś określonego typu. Tak jakby dać mu zamknięte pudełko i powiedzieć: nie widzisz co jest w pudełku, ale ja Ci mówię że jest tam dynamit, więc traktuj to pudełko jak pudełko z dynamitem. :) Konwersja...
buffer<<=18; można też rozumieć jako przesunięcie o 18 bitów :D bo docelowe dane nie znajduja się na początku ramik Tylko czy aby we właściwym kierunku? Funkcja TC_GetTC1() nie wykonuje konwersji tylko rzutowanie i moim zdaniem jest zbędna. Spróbuj tak buf w funkcji RD_AD() bo zmienne lokalne nie są domyślnie zerowane podczas deklaracji i mogą...
A jakie są praktyczne konsekwencje nie zastosowania prototypu? Bo bez niego czy z nim program działa tak samo. W pierwszych słowach powtórzę mocno, w programowaniu w językach "kod maszynowy" a zwłaszcza w C są liczne sytuacje, że błąd na razie się nie ujawnia. Standard mówi o tym słowami Undefined Behaviour, ludowa mądrość programistów o "parzystej...
Czyli rand() % 4 oznacza, że ma losować z liczb 0,1,...3 ???? Tak rand() % 4 oznacza że losuje liczbę 0 lub 1 lub 2 lub 3 a int JakasZmienna JakasZmienna=rand() % 4 że wartość tej zmiennej to ta losowa liczba. Liczby często losują się te same ale uruchamiając mój kod ileś tam razy wylosuje każdą z możliwych liczb, jedną więcej razy inna mniej, jedna...
Są to niskie wartości adresy np. 6F0 to jest akurat adres od przeglądarki. Nie jest to adres tylko PID (process identifier). Prawdopodobnie w każdym systemie operacyjnym ogólnego przeznaczenia proces ma swoją pamięć wirtualną. Dostęp do niej (w normalnych warunkach) jest możliwy tylko dzięki systemowym funkcjom. Błąd dostajesz z tego względu, że próbujesz...
Pytanie po co uzywasz HIDa skoro postawiles komunikacje na libusb? Uzywanie interrupt endpointów nie wymaga od razu wykorzystania klasy HID. Ja mam tak: 0 - control 1 - ep bulk in 2 - ep bulk out 3 - ep interrupt in 4 - ep interrupt out 5 - ep isoc in Moje urządzenie ma się nijak do klas zdefiniowanych przez standardy, wszystko jest vendor specific,...
Witajcie, Mam STM32 i kodek o rozdzielczości 24 bity. Próbki mam w zmiennej 32-bitowej. Chcę jakoś "zredukować" tą próbkę do 16 bitów. W jaki sposób mogę to zrobić? Tzn, wiem, że mogę po prostu zrobić rzutowanie (int16_t) na zmienną 16-bitową, ale da się to zrobić w jakiś bardziej optymalny sposób? I jak potem to zrobić w drugą stronę?
(at)ElektrodaBot Jak konwertować kod 64-bit na 32-bit? /** (at)file Copyright (c) 2025, Gelip Copyright (c) 2024, Andri Kurniawan Copyright (c) 2020, Seungjoo Kim Copyright (c) 2016, Dawid... Bezpośrednia odpowiedź „Konwersja” istniejącego binarnego modułu UEFI X64 na IA32 nie jest możliwa - trzeba ponownie skompilować kod źródłowy z ustawieniem architektury...
Zawsze można w if sprawdzać R zamiast powtarzać operację odejmowania. Tak, to też przyszło mi do głowy, ale to mnoży zmienne w programie. Cały program testowy wziął się stąd, że tak się odlicza opóźnienia w programie tylko zamiast zmiennej Tim odczytuje się wartość z systemowego SysTic. No i przyszło mi do głowy "... a co jak urządzenie będzie działać...
zmieniłem wynik z milisekund na sekundy poprzez elapsedTIme = (millis() - startTime)/1000, jednakże "elapsedTime" nie wyświetla wyniku po przecinku a zaokrągla liczby. Jak sprawić by zmienna elapsedTIme wyświetlała liczby niecałkowite? Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Użytkownik zmienił wynik pomiaru...
(...) {\n node.warn(\"Brak danych w msg.payload lub nie jest to tablica\");\n return null;\n}","outputs":1,"noerr":0,"initial... Bezpośrednia odpowiedź na pytanie Główny problem w funkcji „141” polega na tym, że próbujesz konwertować cały obiekt msg.payload na liczbę za pomocą Number(msg.payload). W efekcie otrzymujesz wartość...
hotdog: miałem na myśli ogólny przypadek użycia const. W tym przypadku rzutowanie nic nie daje i co więcej jest niepotrzebne. Zmienną na typ const kompilator rzutuje automatycznie i nie powinno to generować ostrzeżeń. Co innego w drugą stronę - rzutowanie zmiennej const na zwykłą - tu pojawić się powinien błąd. Dr. Kuj - sądząc z innych twoich postów...
Prawdopodobnie problemem są typy zmiennych. Funkcja atan2 operuje na zmiennych typu double - Ty podajesz zmienne typu int. Czasem trzeba w takich sytuacjach zrobić jawne rzutowanie każdej zmiennej na typ float - sprawdź czy to pomoże.
Obawiam się, że zrzutowanie na większy typ nic nie da, skoro bajt jest tracony już w trakcie inicjalizacji zmiennej char. W każdym razie dzięki wielkie za odpowiedź ;)
Kod jest niezrozumiały. Pojawiły się takie znaczniki, jak """ czy ">". Jaki plik nagłówkowy jest wymagany, aby móc skorzystać z funkcji esp_clk_cpu_freq()? Przepraszam za zamieszanie związane ze znakami specjalnymi w kodzie. Prawdopodobnie wynika to z formatowania HTML. Oto poprawiony kod w C++20, który wykorzystuje wyrażenie lambda do uzyskania...
Hmmm, rzutujesz na unsigned long i zmienna czas_podawania_sredni jest tego typu, natomiast rzutowanie nie zmienia typu zmiennej czas_podawania_odliczony, pozostanie ona typu unsigned int.
Początek wygląda poprawnie. Pokaż resztę kodu, a przede wszystkim informację z bufora diagnostycznego o tym co spowodowało przejście w stop. Zamiast adresowania możesz spróbować bezpośredniego dostępu do obszaru Temp poprzez L (jeśli zmienna Czas w zakresie Temp ma adres początkowy 0, to LB0 będzie pierwszym bajtem) lub w SCL'u poprzez rzutowanie AT...
Czyli dla pewności zawsze trzeba dodawać? Nie, nie trzeba tego na pewno "zawsze" dodawać i zwykle takie "profilaktyczne" rzutowanie tylko zaciemnia obraz, podobnie jak profilaktyczne nawiasy wszędzie gdzie się da. Trzeba do sprawy podchodzić rozsądnie i po prostu za każdym razem przemyśleć co jest potrzebne - uniwersalna zasada którą mógłbyś stosować...
Zakres wyniku obliczenia zawsze mieści się w przedziale -100 do +100. Interesująca teoria, biorąc pod uwagę fakt, że dla 127 i 127 wynik wynosi 135 i definitywnie nie mieści się w podanym przez Ciebie zakresie ani w zakresie zmiennej int8_t.
W prosty sposób nie uda ci się tego zrobić. Ostrzeżenie można łatwo wyeliminować jwnie rzutując typ, ale to tylko maskuje problem. Musisz wiedzieć na jakiego typu zmienną wskazuje wskaźnik. Ty napisałeś kompilatorowi, że wskaźnik wskazuje na zmienną typu uint8_t. Jeśli zrobisz dereferencję wskaźnika to uzyskasz wartość o typie uint8_t. Jeśli wskaźnik...
Myślę, że koledzy nie do końca wytłumaczyli o co chodzi. ... Niestety mylisz się. Zarówno typ przyjmowany przez funkcję jak i binarne reprezentacje liczb ujemnych w kodzie U2 są tu bez znaczenia. Spójrz dokładnie na linka którego podałem. Stronka ta to taki "standard języka C/C++ w bardziej strawnej formie". Po kolei. Z rozdziale "Usual arithmetic...
Rozumiem, że chodzi o linie oznaczone numerami 1 i 2? Bo pozostałe linie to deklaracje zmiennych. Ad. 1. test.c:17:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] j = (uint16_t)&*(uint8_t*)j; ^ test.c:17:6: warning: cast from pointer to integer of different size...
Czy przez te dwa wskaźniki informacje po prostu z data szelus , czyli z gotowca w zmiennej prog_address wrzucane są 4 zawartości z data[] ?
Pomiar zaczyna pulsować . Troszkę za dużo wrzuciłem programu . Wystarczyło przerwanie od licznika PWM . Jeżeli chodzi o długość przerwania to może błędnie myślałem , że lepiej jedno dłuższe niż kilka krótszych . Spróbuje zastosować przerwanie od przetwornika ac .Ile pomiarów najlepiej zrobić i jak rozwiązać rzutowanie zmiennych int na char ? Na początku...
W języku C zmienna typu char różni się od zmiennej typu int tylko zakresem zmienności. Nie ma rozróżnienia na typ znakowy i numeryczny, a więc na zmiennej char możesz dokonywać dowolnych operacji. To o co pytasz nazywa się rzutowanie typów i może być : - "w góre" (awans) jeśli z typu o mniejszym zakresie zmienności rzutujesz na coś większego (np: z...
Alternatywnie możesz skorzystać z dynamicznej alokacji pamięci. Sprawdzi się szczególnie w przypadku dużych tablic. Deklarujesz najpierw typ type tZmienna = array [min...max] of jakis_inny_typ; następnie zmienną wskaźnikową rzutowaną na ten typ var zmienna = ^tZmienna; W inicjalizacji programu musisz przydzielić pamięć new (zmienna);...
Dokładnie tak jak piszesz, malloc to rezerwacja pamięci (memory allocation). Nawias to rzutowanie - informujesz kompilator, że świadomie chcesz przypisać wynik działania funkcji malloc (która zwraca wskaźnik na void - http://www.cplusplus.com/reference/cstdl... ) do wskaźnika na int.
Robi rzutowanie "sam z siebie" czy trzeba zrobić to jawnie ? Sprawdź a się dowiesz. Na tyle na ile znam AVR-GCC w tym przypadku sam tego nie zrobi. Będzie działał od lewej do prawej, a po lewej ma analogRead czyli uint16_t i wszystko jasne dlaczego się krzaczy. Czyli trzeba zrobić jawne rzutowanie uint32_t (analogRead(A0)) itp, itd. Tak, ale tych rzutowań...
-> zumek jak najbardziej może to być przyczyną kłopotów autora. Ale autor twierdził że mu się nie zmienia CAŁA zmienna w pętli. Wcale nie analizowałem jak on ją dalej używa. Jeżeli mówił to na podstawie wyglądu obrobionej i przekazanej zmiennej gdzieś wewnątrz tych wywoływanych funkcji to niestety, nie wpadłem nato. Toteż dla tego nie napisałem , że...
Spróbuj zrobić rzutowanie (tak się robi w delphi): var ZmiennaA : Integer; ZmiennaB : Real; begin ZmiennaA := Integer(ZmiennaB); end; Gdzie ZmiennaA to miejsce, gdzie trafi przekonwertowana na inny typ ZmiennaB Wiecej na ten temat znajdziesz tutaj: [url=http://4programmers.net/Delphi/Rzut...
Cześć! To już mój drugi temat, dość niechętnie go zakładam bo problem jest błahy, ale mam nadzieję, że nikt na mnie nie nakrzyczy ^^. Niedawno skończyłem robić GUI do aplikacji, która wysyła dane przez port COM w Qt Creator, zaprogramowałem kilka przycisków, suwaki i listę z aktywnymi portami COM. Mianowicie napisałem funkcję wysyłającą, która wywołuję...
Program działa, chociaż wydaje mi się, że temperatura jest ciut zawyżona, no ale może i faktycznie taka jest. Mam jeszcze inny problem, a właściwie póki co za małą wiedze w temacie, żeby wiedzieć jak ten temat ugryź, a mianowicie: Mam tak zdefiniowane zmienne: ( or ) missing [IF(CHR(S2(1)) = 4 THEN] Assigment error...
OK pierwsza linijka: deklaracja wskaźnika s. druga linijka: &f - pobranie adresu w pamięci zmiennej f (jest ona typu float). Ta operacja zwróci wskaźnik do float, czyli float*. Ale zamieniamy to na char*, więc wykonujemy rzutowanie (char*)&f. Wskaźnik s będzie wskazywał na adres zmiennej f, ale jest typu char*, więc działa jak wskaźnik do tablicy charów...
1. z 8 na 16 bitów robisz tak: konwertujesz typ zmiennej (to się chyba rzutowanie nazywa) z 8 na 16-bitową i przesuwasz o 8 pozycji w lewo 2. z mono na stereo robisz tak: dublujesz każdą monofoniczną próbkę (czyli jak masz próbki: 1, 2, 3 to musisz zrobić: 1, 1, 2, 2, 3, 3) 3. nie zapomnij odpowiednio pozmieniać informacje w nagłówku pliku
z ograniczeniem jej widoczności a poprzez getter... Ale ja nigdy nie mówiłem że static nie daje oszczędności, zależy mi na ukrywaniu tej zmiennej globalnej czyli enkapsulacji i tyle.... żeby nie mieć w kodzie stale do niej odwołania, oszczędności nie ma żadnej. Dodano po 3 Stworzenie wskaźnika jako volatile nic nie zmienia z pewnością, choć słyszałem...
Mogę zrobić jak piszesz, jak będę wiedział jak to zrobić. Napisz może dlaczego tak się dzieje i jak to zrobić:) Rzutowanie co jest mniej eleganckie od utworzenia nowej sekcji. Zobacz jak zdefiniowane jest np TIM1. Kompilator nie pluł eis o taki kod?
float a=12,343546575474 ; float b; b=(float)((int)(a*100))/1000.0; Jeżeli dzielisz przez float (1000.0) to rzutowanie licznika na float jest niepotrzebne. Zresztą tworzenie drugiej zmiennej (b) także. No i przecinki się rozjechały :-). a = (int) (a * 1000) / 1000.0;
Zobacz, jak jest zdefiniowana zawartość ROM. Rzutowanie jest niezbędne, żeby z liczby zrobić jakikolwiek wskaźnik, a to jest wskaźnik na wskaźnik na tablicę. Samo przypisanie tego wskaźnika do zmiennej jest natomiast bez sensu, bo wystarczyłoby to zgrabnie zrobić przez #define.
Nie. Patrząc od prawej do lewej: rzutowanie adresu bufor na unsigned long, następnie "pobranie" wartości i skopiowanie jej do zmiennej dana. Jeśli w jakimś kodzie występuje wspomniana przez kolegę właściwość to proszę go wkleić, bo na pewno nie jest to kod z pierwszego postu tego wątku.
Dziwne ale po sprawdzeniu działa tak samo i dla "^" i dla "|". Bo łączysz to z "czystą" (wyzerowaną zmienną). 0 ^ 1 == 0 | 1, tak samo jak 0 ^ 0 == 0 | 0 Natomiast konwersja na float, w taki sposób jak podałeś niestety nie działa. Pisałem przecież, że kolejność przykładowa. U Ciebie może być odwrotnie. Innym problemem jest próba zmuszenia kompilatora...
rzutowanie tablicy rzutowanie zmiennych rzutowanie wskaźnik
lampa uliczna sodowa wymiana tylny klamka drganie silnika głowicy
Jak sprawdzić zwarcie procesora Intel, AMD – pomiar rezystancji VCORE, diagnostyka VRM Lenovo – przywracanie ustawień fabrycznych laptopa, Windows 10/11, przycisk Novo, OneKey Recovery