c언어에서 문자열을 그대로 함수로 넘길수있나요?
글쓴이: square4fish / 작성시간: 금, 2018/04/06 - 6:00오후
int get_entry(ListType *list, int pos)
{
error("위치 오류");
}char error(char *message)
{
fprintf(stderr, "%s\n", message);
exit(1);
}이런식으로 만들어서 error함수에서 문자열을 그대로 받게하는게 문법상 가능한가요??
Forums:


fprintf() 에 "%s\n" 라는 문자열
fprintf() 에 "%s\n" 라는 문자열 넘겨주는 것에 대해선 어떻게 생각하세요 ?
참고해보세요.
http://codepad.org/EhY8yIi4
함수에 인자값을 넘길때는. 대충 이런식으로 사용합니다.
정확한 내용은 C 책과 예제를 보시기 바랍니다.
네이버와 구글에서 검색해보셔도 되구요.
#include <stdio.h> #include <error.h> #include <stdlib.h> typedef struct DF_LIST { int a; }ListType; char fn_error(char *message); //함수 선언 int fn_CallByReference(char * r) { printf("[IN] fn_CallByReference : %s\n", r); *(r+0) = 'a'; *(r+1) = 'b'; *(r+2) = 'c'; *(r+3) = 'd'; } int fn_CallByValue(char r [10]) { printf("[IN] fn_CallByValue : %s\n", r); r[0] = '1'; r[1] = '2'; r[2] = '3'; r[3] = '4'; } int fn_CallByValueRef(char r [10]) { printf("[IN] fn_CallByValueRef : %s\n", r); *(r+0) = '1'; *(r+1) = '2'; *(r+2) = '3'; *(r+3) = '4'; } int get_entry(ListType *list, int pos) { error(0,0,"오류 발생"); fn_error("오류 발생"); } //error() //http://man7.org/linux/man-pages/man3/error.3.html //exit() //http://man7.org/linux/man-pages/man3/exit.3.html char fn_error(char *message) { fprintf(stderr, "%s\n", message); exit(1); return 0; } int main() { // char ca[10] = {"test"}; fn_CallByReference(&ca[0]); printf("[OUT] main() - fn_CallByReference : %s\n", ca); // fn_CallByValue(&ca[0]); printf("[OUT] main() - fn_CallByValue : %s\n", ca); fn_CallByValueRef(&ca[0]); printf("[OUT] main() - fn_CallByValueRef : %s\n", ca); // char * p = (char*) malloc (10); memset(p, 0x00, 10); *(p+0) = 't'; *(p+1) = 'e'; *(p+2) = 's'; *(p+3) = 't'; fn_CallByReference(p); printf("[OUT] main() - fn_CallByReference : %s\n", ca); // memset(p, 0x00, 10); *(p+0) = 't'; *(p+1) = 'e'; *(p+2) = 's'; *(p+3) = 't'; fn_CallByValue(p); printf("[OUT] main() - fn_CallByValue : %s\n", p); fn_CallByValueRef(p); printf("[OUT] main() - fn_CallByValueRef : %s\n", p); free(p); // ListType *list; get_entry(list, 0); fn_error("위치 오류"); return 0; }출력 결과
[IN] fn_CallByReference : test
[OUT] main() - fn_CallByReference : abcd
[IN] fn_CallByValue : abcd
[OUT] main() - fn_CallByValue : 1234
[IN] fn_CallByValueRef : 1234
[OUT] main() - fn_CallByValueRef : 1234
[IN] fn_CallByReference : test
[OUT] main() - fn_CallByReference : 1234
[IN] fn_CallByValue : test
[OUT] main() - fn_CallByValue : 1234
[IN] fn_CallByValueRef : 1234
[OUT] main() - fn_CallByValueRef : 1234
/t: 오류 발생
오류 발생
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기