Тёмный
No video :(

What are variadic functions (va_list) in C? 

CodeVault
Подписаться 61 тыс.
Просмотров 21 тыс.
50% 1

Опубликовано:

 

20 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 38   
@peyop5262
@peyop5262 Год назад
I've used it to write a generic "err_exit" function, which basically takes a return error int as first parameter, then as much strings as needed. For example 'err_exit(1, "", SDL_GetError(), NULL);' It makes my code cleaner (exit program in a single line and customized error message) and it's really helpful when a project gets big. As you've mentioned, here the NULL last arg isn't a problem since variadic args are strings. Very handy C functionality if you treat it carefully. Thank you for your amazing videos
@NondairyDig
@NondairyDig 11 месяцев назад
The last one in the playlist🎉🥳 Thank you so much!!!
@anilthapa6290
@anilthapa6290 Год назад
Hi very good explanation of the topic. Learned so much from your channel.
@user-mo6vz5mg3t
@user-mo6vz5mg3t 9 месяцев назад
lol the adds started exactly at the moment when he tried to compile with 10 iterations instead of 4 at 9:24 This was an undefined behaviour indeed
@riemann4151
@riemann4151 11 месяцев назад
best channel on C.
@akpevwepraise4208
@akpevwepraise4208 10 месяцев назад
the most perfect explanation sofar
@AlluAdarsh
@AlluAdarsh Год назад
Informative. Thank you!
@yrds96
@yrds96 9 месяцев назад
Great video I didn't knew about the NULL technique
@189Blake
@189Blake Год назад
The C23 new syntax seems very useful, could you do a blog post or a follow up explaining that? Just a video idea
@CodeVault
@CodeVault Год назад
Thanks for the suggestion. I will look into it
@mustaphaboudrik5390
@mustaphaboudrik5390 11 месяцев назад
Thanks a lot for the Explanation
@bjornnordquist1616
@bjornnordquist1616 Год назад
Hi! Interesting video. You have been asking for content ideas in the past, so maybe there is something for you in here: there appears to be almost no content about testing in C. Or maybe it is just really hard to dig up for me. I barely know where to start, especially since all content send to focus on C++ and Visual Studio appears to have a dislike for C in general. Also, maybe how far can we emulate object oriented programming or functional programming in C? And in the same direction procedural programing with C. Either way I'll keep watching these C videos until I move on. Thanks a lot!
@CodeVault
@CodeVault Год назад
Thanks for the suggestions. I have dabbled in automated testing but not in C specifically (I'll have to do some research). And regarding emulating OOP in C... it was always in my mind since it's a great way of learning the basics of OOP and how it's a paradigm that can be used in almost any language
@vitalis3285
@vitalis3285 29 дней назад
Great Video, very helpful! Ich kuess' dein Herz.
@dr-Jonas-Birch
@dr-Jonas-Birch 3 месяца назад
As you all know, my channel also does similar C language content (although focusing on advanced C features). My question is, do all your 15 000 subscribers come for the C content, or just a tiny fraction where the rest are here for webdev stuff. Any tips on how to reach 😊them? JB
@CodeVault
@CodeVault 3 месяца назад
99% of my viewers are from the C content. I had little to no success with the webdev videos (but I might give it a shot later on). Here's my advice: - Keep things simple and short. Understand that the viewers' time is precious for the viewer (nobody wants to waste their time watching a 40 mins video). - Most of my views are from searches on some very niche questions. Try researching about topics like these. For example, I noticed you have a Tor-related video that did well. Maybe more videos on that topic could be a good idea. Don't focus too much on generic topics (at least not in the beginning). - Explain basic concepts when needed. This goes a bit against the first point but I find that many people don't understand certain concepts because they are missing some of the more basic ones related to that topic. Quickly going over some of the basics is, a lot of the times, needed. - Rewatch your videos and find ways to improve them. For example: always speed up large portions where you're just typing code or waiting for some process to finish. You could also speed up your voice a little if you feel that is still legible (many people already do that using the RU-vid player anyway). Thanks for stopping by, wish you good luck!
@fifaham
@fifaham 8 месяцев назад
Having 0 in the list while using the NULL method could be troublesome for embedded design - the hardware may not behave well or the robot arm may grab the wrong object.
@Notthetylor
@Notthetylor Год назад
I'd like to have a mentor like u!!
@dimitrioskalfakis
@dimitrioskalfakis Год назад
tricky. good effort.
@julietagoldbaum332
@julietagoldbaum332 Год назад
Excelent video!!. congrats from Argentina!!. What is it argument promotion in variadic functions?
@CodeVault
@CodeVault Год назад
That is quite a complex topic which I will cover in a video. The basic idea is that parameters for variadic functions are treated as certain data types by default
@shenghongzhong
@shenghongzhong 7 месяцев назад
Did we know which video he referred to was about not using the null terminator and the number of elements?
@CodeVault
@CodeVault 7 месяцев назад
There's no video about that. I recommended this as a homework, but I can help with that if you need it
@vilijanac
@vilijanac Год назад
Is it possible to pass an int array instead sum({1,2,3}), where you have int sum(int args[]){...int count = sizeof(args);...} I forgot about this.
@CodeVault
@CodeVault Год назад
In other languages it might be possible. In C you have to first declare and initialize an array before you pass it to the function
@vilijanac
@vilijanac Год назад
@@CodeVault ok, thx, reason also for va_list implementation and passing count. It is better then testing for NULL.
@nayyerabbas7174
@nayyerabbas7174 Год назад
Very informative. Can you make a video on opaque pointer in c.
@CodeVault
@CodeVault Год назад
I will look into it
@zyghom
@zyghom Год назад
nice, so how come printf does not need count? ok, that is the homework ;-)
@CodeVault
@CodeVault Год назад
Exactly. Hint: It might have to do with those pesky %d and %s you need to specify to printf
@belayoub6055
@belayoub6055 Год назад
@@CodeVault well you need to count how many % that specify the format no ?
@CodeVault
@CodeVault Год назад
@@belayoub6055 Exactly
@XAENDER196
@XAENDER196 Год назад
Hi! Is it possible to pass char array to parameters? i mean, can they be as variadic arguments?
@CodeVault
@CodeVault Год назад
You can pass any type of variables you want to va_list
@ryanboudwin541
@ryanboudwin541 9 месяцев назад
Why not pass argc from your main into the function instead of a separate int count?
@CodeVault
@CodeVault 9 месяцев назад
The argc value is the number of parameters passed to the executable
@rotemlv
@rotemlv Год назад
I wouldn't recommend using the last trick you showed, as the code will return bad results on some inputs (0s spell trouble when comparing to NULL). Try this main on your code: int main() { printf("A list of stuff: %d ", sum(1,2,3,4,5,6,0,999, NULL)); return 0; } You will get the expected (by me) 21, and ignore the 999. Yeah, one might say this is an edge case, but I wouldn't.
@CodeVault
@CodeVault Год назад
I fully agree. That's what I warned people about in the video. It works well if you pass strings (or other pointer types) for example
Далее
Communicating between processes (using pipes) in C
14:00
Why are function pointers useful?
6:43
Просмотров 30 тыс.
Why Function Pointers are Awesome
11:11
Просмотров 6 тыс.
How to resize an array in C (Part 1)
11:13
Просмотров 2,4 тыс.
Let's build a mini printf function
45:46
Просмотров 23 тыс.
What does int argc, char* argv[] mean?
10:11
Просмотров 350 тыс.
why do void* pointers even exist?
8:17
Просмотров 353 тыс.
Why C is so Influential - Computerphile
10:50
Просмотров 1,9 млн
The What, How, and Why of Void Pointers in C and C++?
13:12