小编Dra*_*ton的帖子

是不是将所有参数传递给函数都不好?

我一直在尝试使用下面的源代码"动态调用函数".在使用仅接受前两个参数的testing_function成功测试此代码之后,我在第三个中添加并在调用函数时决定"不提供参数".我注意到,当我这样做时,第三个参数的值不是(必然)0,而是一个"随机"值,我不知道它的起源.

问题如下:

  • 这些价值来源于哪里?
  • 另外,如何将参数传递给函数?
  • 不传递参数是不好的做法吗?
  • 是否可以为函数参数的添加做好准备,而无需使用函数重新编译代码?(例如:动态加载的库的函数获得了一个可接受的参数,但是不会重新编译使用该函数的代码).

源代码的前言如下:

我正在使用Linux运行,使用GCC 4.6.3编译/调用链接器,并且在使用此代码时不会收到编译/链接警告/错误.此代码执行'完美'.我打电话给gcc如下:

gcc -x c -ansi -o (output file) (input file, .c suffix)
Run Code Online (Sandbox Code Playgroud)

源代码如下:

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>

/* Function for testing. */
int testing_function(char* something, char* somethingelse, int somethingadditional)
{
    int alt_errno = errno;
    if ((something != NULL)&&(somethingelse != NULL))
    {
        errno = 0;
        if (fprintf(stdout, "testing_function(\"%s\", \"%s\", %d);\n", something, somethingelse, somethingadditional) <= 0)
        {
            if (errno != 0)
            {
                int alt_alt_errno = errno;
                perror("fprintf(stdout, \"testing_function(\\\"%%s\\\", \\\"%%s\\\", %%d);\\n\", something, somethingelse, …
Run Code Online (Sandbox Code Playgroud)

c function

6
推荐指数
2
解决办法
861
查看次数

ANSI C编译错误:','标记之前的预期表达式

在尝试编译我编写的一些代码时,我继续收到此错误,文件中的位置完全没有帮助.这使用gtk 2.0.

以下是我在编译时收到的内容:

charles @draton-generico:〜/ Documents/C89 $ gcc -xc -ansi -g bahbahbah.c -o bahbahbah pkg-config --cflags --libs gtk+-2.0

bahbahbah.c:在函数'main'中:

bahbahbah.c:28:1:错误:','令牌之前的预期表达式

以下是我试图编译的代码:

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

void closure(void)
{
    gtk_main_quit();
    printf("gtk_main_quit() has been called.\n");
}

void main(int argc, char* argv[])
{
    gboolean check = gtk_init_check(&argc, &argv);
    if (check == FALSE)
    {
        printf("Failed to initialize toolkit.\nTerminating.\n");
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("Initialized toolkit.\n");
        GtkWidget* main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title((GtkWindow*)main_window, "BLAH");
        gtk_window_set_default_size((GtkWindow*)main_window, 700, 700);
        g_signal_connect(main_window, "delete-event", closure, …
Run Code Online (Sandbox Code Playgroud)

c compiler-errors c89

1
推荐指数
1
解决办法
1205
查看次数

标签 统计

c ×2

c89 ×1

compiler-errors ×1

function ×1