Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: ArifAhmet - 15 Aralık 2014, 20:50:52

Başlık: Garip bir struct hatası
Gönderen: ArifAhmet - 15 Aralık 2014, 20:50:52
Merhabalar,
Elimde böyle bir yapı var;

typedef struct {
     /**
      * Value representing the argument
      */
     char val[SHELL_MAX_ARG_LEN];
} shell_cmd_arg;

/**
* All arguments from a single command line
*/
typedef struct {
     /**
      * Number of arguments
      */
     unsigned char count;

     /**
      * The arguments
      */
     shell_cmd_arg args[SHELL_MAX_ARGS];
} shell_cmd_args;

/**
* Definition of a single shell command
*/
typedef struct {
     /**
      * Name of the command
      */
     const char *cmd;

     /**
      * Description of the command
      */
     const char *desc;

     /**
      * Functino called when executing the commmand
      */
     int (*func)(shell_cmd_args *args);
} shell_cmd;

/**
* All shell commands knwon by the shell
*/
typedef struct {
     /**
      * Number of commands
      */
     unsigned char count;

     /**
      * The commands
      */
     shell_cmd cmds[];
} shell_cmds;


ve böyle bir atama yapıyorum;


shell_cmd cmd[]={"h","list available commands",shell_cmd_help};

shell_cmds komutlar = {2,cmd};


fakat ikinci satırdaki cmd'ye çok fazla değer var diyor. Sorunu bulamadım bir türlü, yardımcı olaiblirseniz sevinirim.

İyi çalışmalar.
Başlık: Ynt: Garip bir struct hatası
Gönderen: Burak B - 16 Aralık 2014, 00:59:56
shell_cmd cmds[];

Derleyici bu kadar akıllı mı sence ? Bu hafızayı kim yönetecek ? Flexible array tanımlıyorsun !

shell_cmd *cmds;

Dersek nasıl olur mesela ?
Başlık: Ynt: Garip bir struct hatası
Gönderen: AsHeS - 16 Aralık 2014, 05:45:13
Structın içinde ki shell_cmd    cmds[]; şekliyle GCC derliyor ama near initialize warningi veriyor.
Keil'in bir ayarı falan olabilir bu şekilde tanımlayabilmek için.
Başlık: Ynt: Garip bir struct hatası
Gönderen: ArifAhmet - 21 Aralık 2014, 21:02:20
Hocam dediğinizi uyguladım. Derledi :) Çok sağolun.
Başlık: Ynt: Garip bir struct hatası
Gönderen: Burak B - 21 Aralık 2014, 23:09:45
Alıntı yapılan: Burak BAYRAK - 16 Aralık 2014, 00:59:56
shell_cmd cmds[];

Derleyici bu kadar akıllı mı sence ? Bu hafızayı kim yönetecek ? Flexible array tanımlıyorsun !

shell_cmd *cmds;

Dersek nasıl olur mesela ?

Tekrar etmeye gerek var mı ?