c 언어 가 변 매개 변수 구현 예시
#include <stdio.h>
#include <stdlib.h> // itoa() and ltoa()
#include <string.h> // strcat() and strlen()
// echo("$i, $s, $l, $c", arg1, arg2, arg3, arg4)
// $i -- int, $s -- string, $l -- long, $c -- char
void echo(char *fmt, ...)
{
int i, fmtlen = strlen(fmt);
int *args = (int *)((char *)(&fmt) +sizeof(char *));
char cbuff[BUFSIZ] = {'\0'}, nbuff[BUFSIZ] = {'\0'}; // #define BUFSIZ 512 in <stdio.h>
for (i = 0; i < fmtlen; i++)
{
if (('$' == fmt[i]) && ((i + 1) < fmtlen))
{
switch (fmt[i + 1])
{
case 's': strcat(cbuff, (char *)(*args));
break;
case 'c': cbuff[strlen(cbuff)] = (char)(*args);
break;
case 'i': itoa(*args, nbuff, 10); strcat(cbuff, nbuff);
break;
case 'l': ltoa((long)(*args), nbuff, 10); strcat(cbuff, nbuff);
break;
default: break;
}
++args, ++i;
}
else
cbuff[strlen(cbuff)] = fmt[i];
}
cbuff[strlen(cbuff) + 1] = '\0';
fputs(cbuff, stdout);
}
int main()
{
echo("arg_list = $i, $s, $l, $c", 2, "hello", 8, 'a'); // Si -- %d, $s -- %s, $l -- %ld, $c -- %c
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.