Linux C 에서 연결 연산 자 \ # \ #
1359 단어 linux
#include <stdio.h>
#define test(x) test ## x
#define DPRINT( fmt, args...) \
{ \
printf("File : %s Funtion : %s Line : %d \t", __FILE__, __FUNCTION__, __LINE__ );\
printf( fmt, ##args );\
}
void test1(int a)
{
DPRINT("Integer : %d
", a);
}
void test2(char *s)
{
DPRINT("String : %s
", s);
}
int main(void)
{
test(1)(100);
test(2)("hello");
return 0;
}
인쇄 정보:
***************************************************
File : test.c Funtion : test1 Line : 11 Integer : 100 File : test.c Funtion : test2 Line : 16 String : hello
***************************************************
#define DPRINT( fmt, args...) \{ \printf("File : %s Funtion : %s Line : %d \t", __FILE__, __FUNCTION__, __LINE__ );\printf( fmt, ##args );\}
이렇게 정의 매크로 에 문제 가 있 습 니 다. 표준 printf () 함수 에 반환 값 이 있 습 니 다. 다만 우 리 는 거의 사용 하지 않 습 니 다.
다른 정의:
#define DPRINT( fmt, args...) \ printf("File : %s Funtion : %s Line : %d \t"fmt, __FILE__, __FUNCTION__, __LINE__ ,##args )
fmt 포인터
*****************************************
const char *s= "string";
printf(s);
*****************************************
합 법 적 입 니 다. string 을 인쇄 할 수 있 습 니 다.
그러나 DPRINT (s) 는 비합법적 이다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.