No tak, ale funkcja zwraca wskaźnik na funkcję, a ta ten wskaźnik ma mieć ten sam typ, co wskaźnik na funkcję, która go zwraca. W sensie ma być możliwe to: No ale czemu nie tak? [syntax=C]void* function(void* ptr) { return (&function); }[/syntax] W zasadzie funkcja ta może zwracać wskaźnik na function_t - czemu nie, tyle że to tak naprawdę zbędna komplikacja....
Witam; jestem początkującym, więc proszę nie śmiejcie się z pytania. Ale ledwo co w miarę dobrze zrozumiałem pojęcie wskaźników i zaczełem je używać a teraz chciałbym zrozumieć wskaźniki na funkcję. Tyle tylko, że kompletnie nie mogę zrozumieć ich sensu, do czego służą, kiedy się przydają. Czy mógłby któryś kolega podać mi jakiś uproszczony przykład...
Zaremuj ifa //if (*kwota>=tab[i])
Np tak [syntax=c]typedef int int3[3]; int3 *funkcja(int3 *wsk) { for(int i = 0; i < 3; i++) (*wsk)[i] ++; return wsk; } int3 x = {1,2,3}; int main(void) { int3 *y = funkcja(&x);[/syntax]
No przecież napisałem, że się nie da. Wskaźnik nie przechowuje żadnej innej informacji poza adresem (początku) zmiennej. W związku z tym, jeżeli funkcja potrzebuje rozmiaru, to trzeba go przekazać jako dodatkowy argument. Kolejny raz już nie będę tego powtarzał. Oczywiście, można sobie wszystko opakować w pseudoobiekty w stylu typedef struct {...
Pierwszy zapis o który pytasz, to tablica wskaźników na funkcję, która to funkcja nie zwraca wartości i nie przyjmuje wartości. Zapis const oznacza, że tablicy nie będziemy modyfikować. Zapis, moim zdaniem bardziej czytelny, który sam stosuję w takim przypadku (z głowy): typedef void (*pVector_t)(void); __attribute__ ((used,...
1. To C++ a nie C. 2. Przekazujesz wskaźnik przez wartość, funkcja dodaj zmodyfikuje tylko jego kopię na swoim stosie - nie zmodyfikuje wskaźnika w funkcji wywołującej. 3. Skoro to C++ to najszybciej będzie przekazać wskaźnik przez referencję, wystarczy: void dodaj(struct ksiazka *&pierwszy)
Wszystkie zmienne automatyczne w funkcjach są niszczone po wyjściu z funkcji. Jeśli chcesz, żeby funkcja tworzyła strukturę i ją jakoś zwróciła, to w C zazwyczaj robi się to brzydko: - strukturę deklaruje (lub alokuje) się na zewnątrz funkcji, a do funkcji podaje wskaźnik do niej, żeby funkcja tę strukturę zainicjalizowała; - na zewnątrz funkcji deklaruje...
IMHO nie powinno być z tym problemu. MINGW (devcpp) wykonuje nawet funkcję na wskaźniku nie adresującym żadnego obiektu (może to mieć sens, gdy funkcja nie korzysta ze zmiennych składowych danej klasy). Pierwsze, co mi się nasuwa - czy funkcja, którą wywołujesz jest public. Napisałem taki kod ćwiczebny: #include <stdlib.h> #include <iostream>...
Bzdura, czy przekażesz do funkcji tabela, czy &tabela wyjdzie na to samo - poczytaj o tym jak są przekazywane tabele jako argumenty funkcji w C. A problem leży w tym o czym już pisałem - globalny wskaźnik nie może wskazywać na dane lokalne, które nie są zaalokowane dynamicznie lub ich czas życia nie jest nieskończony jak w przypadku static. Zastanów...
type TCallback = function(x : Double) : Double; function f(a : Integer; temp : Double; funkcja : TCallback) : Integer;
czy mógłby mi ktoś wytłumaczyć czym jest pierwszy argument - nie wiem jak działa takie połączenie wskaźnika i referencji ? Nie rozumiem dlaczego jest tam & a nie sam wskaźnik do obiektu typu Lista ? Dziwny zapis, ale zakładając że to działa, to wygląda na to że taki zapis jest jakby referencja do wskaźnika. Niby mógłby być tylko wskaźnik, ALE w przypadku...
Ta funkcja zwraca wartość ukrytą pod adresem który jest jej argumentem. Proste. Ponieważ w twoim przypadku, pod tym adresem kryje się wskaźnik, funkcja zwraca jego wartość czyli adres tego co ten wskaźnik wskazuje. O to chodzi w twoim kodzie bo rzutujesz to na inny wskaźnik potem. Wskaźnik na wskaźnik (**) to najfajniejsza rzecz w C (za wyjątkiem wskaźnika...
Error[Pe167]: argument of type "FIL volatile *" is incompatible with parameter of type "FIL *" Obawiam się że to wina kompilatora, bo przykład jest zaczerpnięty z ksiązki w której autor używał kompilatora Eclipse. Czy jest na to jakis sposób? :/ Jasne, od razu wina kompilatora. Kompilator poprawnie się zachowuje. Jeśli...
Najogólniej nie powinieneś tego robić. Skoro funkcja przyjmuje wskaźnik o typie prog_char to znaczy, że spodziewa się wskaźnika do pamięci FLASH mikrokontrolera. Jak jej dasz wskaźnik do RAM, w dodatku z niekompatybilnego typu (int jest szerszy niż char) to nic dobrego z tego nie wyniknie. Dodano po 1 Jeśli z kolei chcesz dokonać konwersji to użyj itoa...
Wynika z tego, że chodzi o wskaźnik dostrojenia toru FM a dokładnie, czy układ detektora znajduje się w środku krzywej "S". Wtedy zniekształcenia są najmniejsze.
Bo nadal zwracasz wskaźnik na lokalną tablicę "oout". Masz też wyciek pamięci spowodowany tym, że po wyjściu z funkcji tracisz wskaźnik na zaalokowaną pamięć "out".
1. Czytelność kodu. Wiem że edytor tego forum pozostawia sporo do życzenia, ale postaraj się zrobić wcięcia spacjami. Im łatwiej odczytać Twój program tym więcej osób się tym zajmie. 2. Unikaj zmiennych globalnych. Im lepiej programujesz, tym mniej ich potrzebujesz. W moim aktualnym systemie operacyjnym nie mogę mieć żadnych zmiennych globalnych, a...
zgadza się, itoa() niestety trzeba sobie napisać, bo newlib go nie ma w standardzie. Funkcja jest bardzo prosta, w necie można znaleźć tysiące przykładów, sam kilka wrzucałem, mogę wrzucić nawet swój obecny. 4\/3!!
rozumiem że chcąc umieścić coś na stosie muszę wywołać zmienną z danego tasku oraz przekazywać wskaźnik do tych danych do funkcji ? (nie przekazując wskaźnika kompilator nie powiązuje danych i funkcja putpixel wyrzuca błąd) Tak właśnie powinieneś zrobić i tak będzie najlepiej - to właśnie będzie obiektowe podejście. 4\/3!!
VC6 to strasznie muzealny zabytek - co cię przy nim trzyma? WINAPI to też nie jest coś w czym wygodnie się cokolwiek piszę, zaprzyjaźnij się np. z Qt. Znalazlem, ze musze skorzystac z funkcji i utworzyc nowy watek, uzyc "czekajacych" funkcji. Tak, w twojej funkcji CADlg::OnOK tworzysz wątek i uruchamiasz wątek (który będzie pobierać twoje dane), a sama...
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...
Przy czasach na poziomie sekund, minut to nie jest to żaden problem. Jeden timer ustawić na stałe przerwanie np co 100ms, w przerwaniu od tego timera przeglądać jakąś tablicę, w której każdy jeden element odpowiada jednemu programowemu licznikowi. Zmniejszać liczniki w elementach w tej tablicy, po czym po wyzerowaniu się wywołać jakąś funkcję. W moich...
(...) ru między A i M. Jednak jest to jedyny parametr który po zmianie na M po nowym uruchomieniu auta z powrotem wraca na A. Rzeczywiste spalanie jest inne niż to samo resetujące się coś. Pomóżcie, może da się coś z tym zrobić. https://obrazki.elektroda.pl/3014225600_... (at)ElektrodaBot Bezpośrednia odpowiedź na pytanie Możliwość ręcznego...
Adres zmiennej zwracany jest poprzez operator '&' - nie wiem skąd wytrzasnąłeś tą małpę... Twoja funkcja działą gdy podasz jej bufor, ponieważ nazwa tablicy jest wskaźnikiem na pierwszy jej element. Jeśli chcesz wskaźnik na inny element, to już potrzebny jest operator '&' 4\/3!!
No to wepnij doświadczalnie jak wepniesz źle to nic się nie stanie. Przeniosłem z: "Audio Początkujący" Przepraszam Mógł byś pomóc a nie tylko przenosisz tematy. Kolego taka jest funkcja moderatora.
(...) ją taki sam SPL co ten EV, ale większy 1,7" driver. Natomiast nie mają BT. Te 129dB na 100 osób spokojnie starczy. Choć bardziej krytycznym jest tu odległość/powierzchnia. Bo 100 osób na sali 10x10m to pikuś dla takich kolumn, nawet na koncert, ale plenerowe boisko sportowe 60x100m już niekoniecznie. Wstępna ocena dostępnych informacji Pytanie...
Pamięć wewnętrzna 2KB - 1514B na ramkę, reszta na stos. Sekcję data, bss oraz opcjonalną stertę wyrzucić do zewnętrznego ramu, chociaż nie wiem na czym niby polega trudność w rzutowaniu wskaźnika - pamięć i wewnętrzna i zewnętrzna są dostępne w dokładnie ten sam sposób. Co do odczytywania przy odbiorze i składania przy nadawaniu można wykorzystać dwie...
void LCD_WriteText(char * text) 1. Ta funkcja jako argument ma wskaźnik ty podajesz jej wartość. 2. działa ono poprawnie dla napisów czyli tablic z ostatnim elementem = 0 (słownie ZERO) Lepiej wykorzystaj funkcję LCD_WriteData();
M.in. nie tak jest to: eeprom_read_byte((uint8_t*)czas); Ta funkcja przyjmuje jako argument wskaźnik na int. Ty wymuszasz konwersję typów, ale w ten sposób, że otrzymujesz wstakźnik na int o wartości równej zmiennej czas. Podczas, gdy chcesz mieć wskaźnik na czas, a więc powinno być &czas. Podobnie masz przy zapisie.
A w takiej sytuacji musiałbym rezerwować pamięć, przekazać do DLL tej jednej, tam znów zarezerwować i skopiować, następnie zwolnić tą wcześniej zarezerwowaną i dopiero wtedy mógłbym przekazać do głównej aplikacji, która by wywoływała jedną funkcję. Powiem tak, nie znam API w postaci DLLki które wewnętrznie alokuje pamięć i zwracałoby wskaźnik tak żeby...
Nie można było tak od razu? Teraz przynajmniej mogę Ci powiedzieć dlaczego działa. Deklarując te 8 tablic i wkładając je do tablicy liczb całkowitych, dokonujesz niejawnego rzutowania z wskaźnika na tablicę (którym jest nazwa tablicy) na liczbę całkowitą. Potem jak wkładasz kolejne elementy tablicy tab do funkcji rejestr to dokonujesz znowu konwersji...
Do przerwań można się bezpośrednio dobrać z poziomu kernela. Czyli tworzysz funkcje, która coś ma wykonać przy wywołaniu przerwania (interrupt handler, trzeba pamiętać że funkcja ta nie może być blokująca) i wiążesz ją z odpowiednim przerwaniem za pomocą funkcji request_irq() której jako parametry trzeba przekazać między innymi numer przerwania(te definicje...
Ponieważ powinno być: volatile na specjalny . Zerknij teraz co się stało: zwykły uint8_t ty jednak przekazałeś jej specjalny uint8_t :D I tutaj teraz pojawia się drugi ważny problem (to częsty błąd wśród początkujących). Jest nim czas "życia zmiennych". W swoim programie zastosowałeś dwa wskaźniki bufor [syntax=c] volatile uint8_t tablica[8]; volatile...
Tak dobrze to nie ma. Nie da sie zrobić funkcji która bedzie dopiero w momencie wywołania wynajdywała jaki jest ten rozmiar dla jej argumentu. Metoda z sizeof() działa dla deklaracji znanych tablic. Jej ładniejsza wersja (dla dowolnych tablic), w miejsce x używasz nazwy tablicy (np. tab) #define TABELEM( x ) ((unsigned)(sizeof(x...
To działa dokładnie tak samo jak w funkcjach ReadFile lub WriteFile z WinAPI. Trzeci argument to wskaźnik na WORD, ponieważ funkcja zwraca ile bajtów faktycznie odczytano właśnie poprzez tą zmienną. Może być tak, że chcesz czytać 1024bajty (btr=1024) a funkcja odczyta tylko 1000 bajtów (z dowolnego powodu, np. address out of range). I jak inaczej ma...
Nie pokazałeś ustawień wyjścia ani timera. Czy timer załącza 2 strefy, czy jedną, czy czuwanie pełne, dzienne, czy nocne. Funkcja wyzwalanie określa kiedy ma być wyzwolone wyjście - u Ciebie zaznaczone wszystkie 3 typy do strefy 1. Wskaźnik czuwania masz ustawiony aktywny, gdy czuwają 2 strefy.
W podobnej sytuacji dodałbym dodatkowy moduł pomiarowy obsługujący mierniki prądu w postaci identycznych wskaźników w innym kolorze (np. niebieski dla napięć, czerwony dla prądów). Niestety wymagałoby to dodatkowego zasilania w postaci 2 uzwojeń, może to być drugi mały transformator. Ww. dodatkowe zasilanie załatwi zasilanie mierników napięcia przy...
To czy dobrze myślę że zwraca ona wskaźnik ? Sama funkcja zwraca status wykonania operacji: CARD_FOUND lub ERROR jako liczbę uint8_t. Natomiast po prawidłowym wykonaniu odczytu nr seryjnego, w tablicy na którą wskazuje serial_out, czyli w Twoim wypadku wskaznik[] jest umieszczany ten numer jako ciąg bajtów. Jeżeli chcesz ten numerek wyświetlić, to...
Jeśli ustawisz void jako typ danych który zwraca funkcja będzie to oznaczać, że funkcja nic nie zwraca. Jeśli zamiast agumentów funkcji wpiszesz void to oznacza, że funkcja nie posiada argumentów (w C trzeba wpisać void, w C++ nie trzeba). Wskaźnik typu void może wskazywać na dowolny typ danych.
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
Robi to się tak: - najpierw init, w którym wskazujesz na port do nasłuchiwania i wskaźnik na funkcję która jest handlerem odebranej wiadomości: struct ip_addr *addr będziesz miał adres nadawcy.
1. do [u]int{8,16,32}_t są specjalne znaki formatujące dla printf() - jak poszukasz to znajdziesz. 2. Do konwertowania liczb całkowitych na string prościej użyć innych funkcji, które tyle nie zajmują (itoa() itp.) Do float i double też są takie funkcje. 3. Kompilator nie czepia się, że chce inny typ zmiennej, tylko że funkcja zignoruje dodatkowe specyfikatory...
Witam wszystkich serdecznie. Co głów to i pomysłów! :-D W ostatniej zakładce ustawień, tam gdzie się włącza min. diagnostykę, jest funkcja ciągły wskaźnik poziomowania, który trzeba wyłączyć. I tyle! https://obrazki.elektroda.pl/7179194400_... https://obrazki.elektroda.pl/4310309800_... https://obrazki.elektroda.pl/9342362000_...
Układ "Twojego" wskaźnika, to normalny wzmacniacz o charakterystyce proporcjonalnej - liniowej, natomiast amplituda sygnału przychodzącego z anteny zmienia się o kilka rzędów (np. 1000 krotnie). Układ który będzie w stanie coś pokazywać w CAŁYM zakresie zmian, to układ o charakterystyce LOGARYTMICZNEJ, tego się nie da zrobić tak prosto! To by musiał...
Jak wynika z dyskusji na forum Golfa, ta funkcja zależy od systemu wskaźnika paliwa: ma on wyjscie na wskaźnik wskazówkowy i na kontrolkę - jeśli dany licznik ją posiada. Większość Golfów kontrolki nie ma, większość Seatów ma, a kabelka dla kontrolki nie ma dodatkowego do baku - po prostu, po obniżeniu się poziomu paliwa do ilośći "Rezerwa" - kontrolka...
Witam, a mówiłem żeby się nie męczyć z WinAPI :P No ale jak ktoś lubi hardcore i nieprzespane noce :) Rozwiązanie z tablicą to nie jest dobry pomysł. Kiedy zamkniesz jedno z otwartych okien, w tablicy zostanie HWND nieistniejącego okna. U Ciebie nie działa bo nawet jeśli funkcja CreateWindow wywoła się prawidłowo to zwiększasz li i ShowWindow dostaje...
https://obrazki.elektroda.pl/3221612800_... Witajcie moi drodzy. Zapraszam na relację z postępów prac nad otwartym firmware dla BK7231T. Temat ten napisany będzie w formie tutoriala, przedstawię tu krok po kroku jak opracowałem własny, wieloplatformowy (działający na Windowsie i BK7231T) mini-serwer HTTP, system konfiguracji pinów...
Ach te tytpy z Delphi swojego czasu tez dały mi w kość, oto rozwiązanie twojego problemu: AnsiString::c_str() ta funkcja zwraca tymczasowy wskaźnik do stringu przekonwertowanego z ansistringu. A wiec w twoim przypadku bedzie to wyglądało tak: if(SaveDialog->Execute()) { ofstream outfile(SaveDialog->FileName.c_str(),ios... outfile.write((char*)&dane,sizeof(mapa))...
1. Co to jest dokładnie to wyrównanie stosu do 8 bajtów i do 4 bajtów, standard API zaleca 8 jak to wygląda w pamięci Chodzi o to, że w momencie "wejścia do dowolnej funkcji" wartość rejestru wskaźnika stosu (SP) ma być podzielna bez reszty przez 8. Do "wejścia do dowolnej funkcji" wlicza się również wejście do przerwania, a ponieważ kod tego w sposób...
wskaźnik funkcja argument wskaźnik funkcja struct funkcja funkcja bascom
dotykowe k850i wybuch termet ładowanie żelowego akumulatora
HP EliteDesk 705 G4 Ryzen 3 na Linuxie: Kompatybilność i Wybór Dystrybucji Reset poziomu pelletu 100% w sterownikach Technix, Plum, Tech, Brager – jak ustawić po uzupełnieniu zasobnika