我有一個用C語言編寫的庫。在代碼中,我找到了這樣幾行,如int x = x;
。我需要用/ Zw標誌重寫所有這些代碼才能編譯。在一些地方,這意味着int x = some_struct->x;
,但在另一種情況下,我不明白它是什麼。在某些地方,它首先使用x變量。所以在哪些情況下可以使用這樣的int x = x;
表達式。有什麼可以使用`int x = x;`表達式(C語言)?
void oc_enc_tokenize_dc_frag_list(oc_enc_ctx *_enc,int _pli,
const ptrdiff_t *_coded_fragis,ptrdiff_t _ncoded_fragis,
int _prev_ndct_tokens1,int _prev_eob_run1){
const ogg_int16_t *frag_dc;
ptrdiff_t fragii;
unsigned char *dct_tokens0;
unsigned char *dct_tokens1;
ogg_uint16_t *extra_bits0;
ogg_uint16_t *extra_bits1;
ptrdiff_t ti0;
ptrdiff_t ti1r;
ptrdiff_t ti1w;
int eob_run0;
int eob_run1;
int neobs1;
int token;
int eb;
int token1=token1;
int eb1=eb1;
/*Return immediately if there are no coded fragments; otherwise we'd flush
any trailing EOB run into the AC 1 list and never read it back out.*/
if(_ncoded_fragis<=0)return;
frag_dc=_enc->frag_dc;
dct_tokens0=_enc->dct_tokens[_pli][0];
dct_tokens1=_enc->dct_tokens[_pli][1];
extra_bits0=_enc->extra_bits[_pli][0];
extra_bits1=_enc->extra_bits[_pli][1];
ti0=_enc->ndct_tokens[_pli][0];
ti1w=ti1r=_prev_ndct_tokens1;
eob_run0=_enc->eob_run[_pli][0];
/*Flush any trailing EOB run for the 1st AC coefficient.
This is needed to allow us to track tokens to the end of the list.*/
eob_run1=_enc->eob_run[_pli][1];
if(eob_run1>0)oc_enc_eob_log(_enc,_pli,1,eob_run1);
/*If there was an active EOB run at the start of the 1st AC stack, read it
in and decode it.*/
if(_prev_eob_run1>0){
token1=dct_tokens1[ti1r];
eb1=extra_bits1[ti1r];
ti1r++;
eob_run1=oc_decode_eob_token(token1,eb1);
代碼的exaple - 可變token1
- 它在文件中第一次使用的token1
和token1
在其他文件中從未遇到,它不是全球性的,不是靜態的任何地方......
更新
與/度Zw標誌:錯誤C4700:未初始化的局部變量 'TOKEN1' 使用
無標誌:所有的正常工作與此LIB
更新2
它theora 1.1.1
LIB
恢復
在評論球員的意見,我更換每int x = x;
與int x = 0
,一切工作正常=)答案
你在那裏迷失了我。你需要更清楚自己想要做什麼。還有一些代碼示例可以幫助 – 2013-04-25 10:48:53
你可以編輯你的問題來包含一個包含'int x = x;'行之一的函數,這會讓你感到困惑嗎? – simonc 2013-04-25 10:50:04
什麼是/ Zw標誌?我想是MSVC嗎? – 2013-04-25 10:50:38