【发布时间】:2018-03-24 01:43:06
【问题描述】:
我是 C 新手。我想简单地打印通过命令行提供的参数数量。我认为代码再简单不过了:
#include <stdio.h>
#include <stdlib.h>
int main(int arg_count, char * argv[])
{
printf("%c", arg_count);
};
我正在使用以下 Makefile 进行编译:
program_NAME := testprog
program_C_SRCS := $(wildcard ./src/*.c)
program_CXX_SRCS := $(wildcard ./src/*.cpp)
program_C_OBJS := ${program_C_SRCS:.c=.o}
program_CXX_OBJS := ${program_CXX_SRCS:.cpp=.o}
program_OBJS := $(program_C_OBJS) $(program_CXX_OBJS)
program_INCLUDE_DIRS :=
program_LIBRARY_DIRS :=
program_LIBRARIES :=
CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))
LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library))
.PHONY: all clean distclean
all: $(program_NAME)
$(program_NAME): $(program_OBJS)
$(LINK.cc) $(program_OBJS) -o $(program_NAME)
clean:
@- $(RM) $(program_NAME)
@- $(RM) $(program_OBJS)
distclean: clean
define OBJECT_DEPENDS_ON_CORRESPONDING_HEADER
$(1) : ${1:.o=.h}
endef
现在当代码编译并运行时说:
./testprog 1 2 3 4 5 6
没有返回任何东西。我真的不明白为什么这不起作用,因为我可以打印单个参数。 请帮忙。
【问题讨论】:
标签: c arguments parameter-passing