NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 13 - Funkce s variabilním počet a typem argumentů v jazyce C

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Patrik Pastor:10.9.2019 15:01
va_start(ap, fmt)

jak to, ze je druhy argument typ pointer?(adresa). V dokumentaci je druhy argumeny typu posledniho znameho typu (ale typ "adresa", je prece v jakemkoliv bytu). Rad bych chtel pochopit, jak funguje druhy argument "fmt" (typu char* - adresa na jeden byte) v teto funkci. Dik za odpoved

 
Odpovědět
10.9.2019 15:01
Avatar
DarkCoder
Člen
Avatar
DarkCoder:20.1.2024 14:15

„Napíšte funkciu, ktorá zo zadaných celých čísiel (argumentov) typu 'int' vyberie najväčšie a vráti ho. Prvé číslo stanovuje počet čísiel, z ktorých sa bude vyberať najväčšie. Počet zadaných čísiel môže byť rôzny.“

Proč ty složitosti ve funkci? Přímočaře..

#include <stdarg.h>
#include <stdio.h>

int maxInt(const unsigned count, ...);

int main(void) {
        int result1 = maxInt(5, 10, 5, 8, 20, 15);
        int result2 = maxInt(3, -5, 0, -3);
        int result3 = maxInt(1, 42);

        printf("Nejvetsi cislo: %d\n", result1);
        printf("Nejvetsi cislo: %d\n", result2);
        printf("Nejvetsi cislo: %d\n", result3);

        return 0;
}

int maxInt(const unsigned count, ...) {
        va_list args;
        int max, current;

        va_start(args, count);

        max = va_arg(args, int);

        for (unsigned i = 1; i < count; ++i) {
                current = va_arg(args, int);
                if (current > max) {
                        max = current;
                }
        }

        va_end(args);

        return max;
}
Odpovědět
20.1.2024 14:15
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 12.