On Thursday 27 May 2010, S M wrote: > How can I have the following but in C?: What exactly of this do you need in C? I mean do you really need two names for the low and high part of the pointer to the `char0` for example? Or is that just more convenient in ASM. > I tried for example: > > unsigned char tile_buffer01 [8]; > unsigned char tile_buffer02 [8]; > unsigned char tile_buffer03 [8]; > unsigned char tile_buffer04 [8]; > unsigned char tile_buffer05 [8]; > unsigned char tile_buffer06 [8]; > unsigned char tile_buffer07 [8]; > unsigned char tile_buffer08 [8]; > unsigned char tile_buffer09 [8]; > unsigned char tile_buffer10 [8]; > unsigned char tile_buffer11 [8]; > unsigned char tile_buffer12 [8]; > unsigned char *tile_buffer [] = {tile_buffer01, tile_buffer02, > tile_buffer03, tile_buffer04, tile_buffer05, tile_buffer06, > tile_buffer07, tile_buffer08, tile_buffer09, tile_buffer10, > tile_buffer11, tile_buffer12}; > > but it didn't work I get teste.c(29) Error: Constant expression > expected teste.c(29): Warning: Converting integer to pointer without > a cast . That's not 29 lines so you don't get that error for just the shown source. Just that compiles fine for me. Here's what I used: ---- #include <stdint.h> uint8_t tile_buffer01[8]; uint8_t tile_buffer02[8]; uint8_t tile_buffer03[8]; uint8_t tile_buffer04[8]; uint8_t tile_buffer05[8]; uint8_t tile_buffer06[8]; uint8_t tile_buffer07[8]; uint8_t tile_buffer08[8]; uint8_t tile_buffer09[8]; uint8_t tile_buffer10[8]; uint8_t tile_buffer11[8]; uint8_t tile_buffer12[8]; uint8_t *tile_buffers[] = {tile_buffer01, tile_buffer02, tile_buffer03, tile_buffer04, tile_buffer05, tile_buffer06, tile_buffer07, tile_buffer08, tile_buffer09, tile_buffer10, tile_buffer11, tile_buffer12}; int main(void) { return 0; } ---- Again the question: Is that really what you need in C? Do you change the content of the pointer array within the program? If not then:: uint8_t tile_buffers[12][8]; would be much shorter. Even if the pointer table to the individual buffers is needed at runtime I would write it that way because enumerating variable names is a "code smell" indicating that you really wanted an array in the first place. Ciao, Marc 'BlackJack' Rintsch -- “Think of it! With VLSI we can pack 100 ENIACS in 1 cm².” -- Alan J. Perlis ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo@musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.8 : 2010-05-27 14:06:47 CEST