30/09/2018, 16:02
Poll: Kiểm tra kiến thức C - 1.19
Các bạn thảo luận đáp án nhé, bài test lấy từ http://www.indiabix.com/online-test/c-programming-test/11
19.Point out the error in the following program.
#include<stdio.h>
#include<stdarg.h>
void varfun(int n, ...);
int main()
{
varfun(3, 7, -11.2, 0.66);
return 0;
}
void varfun(int n, ...)
{
float *ptr;
int num;
va_start(ptr, n);
num = va_arg(ptr, int);
printf("%d", num);
}
- A. Error: too many parameters
- B. Error: invalid access to list member
- C. Error: ptr must be type of va_list
- D. No error
Bài liên quan
Chưa làm dạng này bao giờ, nhưng đọc ví dụ từ Wikipedia thì thấy
ptr phải là kiểu
va_list
=> chọn CCái này tìm kiểu kỹ va_list sẽ thấy khá thú vị
Cái này thấy được dùng nhiều khi mình cần viết lại hàm print để phục vụ cho mục đích print log đặc biệt của chương trình. Trước đây có làm một hệ thống có sử dụng cái này để print alarm. Mà lúc đó nó chạy ổn rồi, a cũng không quan tâm lắm. Chỉ biết công dụng của nó để đi chém gió lúc phỏng vấn thôi.
Vậy người ta hỏi gì và anh chém gì =))
Hỏi nhiều thứ lắm, chủ yếu là những cái cơ bản nhất thôi còn anh chém những gì anh biết, chém bậy bạ bị hỏi ngược lại ko trả lời được là tiêu.