1.有关#define与#ifdef的问题

whitetiger8 2002-04-21 06:46:12
大家看代码:
#ifndef dllmainh
#define dllmainh
....
#endif
....
请问第一句与第二句的意思是什么呢?主要是第二句,它定义的是谁啊?虽然它目的是声明一个特定的字符串,可是它代表谁呢?怎么看?
...全文
22 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerrymousenet2 2002-04-21
  • 打赏
  • 举报
回复
老兄多看看帮助吧!
jerrymousenet2 2002-04-21
  • 打赏
  • 举报
回复
又是你。
whitetiger8 2002-04-21
  • 打赏
  • 举报
回复
谢谢!
jishiping 2002-04-21
  • 打赏
  • 举报
回复
这样做的目的是不让头文件重复定义。这儿的名字并不一定非要是dllmainh,
只要在你的程序中不要重复定义就可以了。一般来说,名字取为头文件的文件
名,将文件名的.去掉,这样就肯定不会重复了。
/********************************************************************** 头文件功能说明:AVR单片机 引脚 位操作 最后修改: SSTA_XJL 时间: 2009.3.28 **********************************************************************/ #ifndef _BIT_H_ #define _BIT_H_ /******************************位段定义*****************************************/ typedef struct{ unsigned BIT0 : 1 ; unsigned BIT1 : 1 ; unsigned BIT2 : 1 ; unsigned BIT3 : 1 ; unsigned BIT4 : 1 ; unsigned BIT5 : 1 ; unsigned BIT6 : 1 ; unsigned BIT7 : 1 ; }PBIT; /*******************************数据类型申明***************************************/ #ifndef uint #define uint unsigned int #endif #ifndef uchar #define uchar unsigned char #endif #ifndef ulong #define ulong unsigned long #endif /**********************************************************************************/ /***********************************************************************/ #define SET_ADDRESS(Var) (*((volatile PBIT *)&(Var))) /**************************************************************************/ #ifdef PORTA #define PORTA_BIT SET_ADDRESS(PORTA) #endif #ifdef PORTB #define PORTB_BIT SET_ADDRESS(PORTB) #endif #ifdef PORTC #define PORTC_BIT SET_ADDRESS(PORTC) #endif #ifdef PORTD #define PORTD_BIT SET_ADDRESS(PORTD) #endif #ifdef PORTE #define PORTE_BIT SET_ADDRESS(PORTE) #endif #ifdef PORTF #define PORTF_BIT SET_ADDRESS(PORTF) #endif #ifdef PORTG #define PORTG_BIT SET_ADDRESS(PORTG) #endif /*******************************************************************************/ #ifdef DDRA #define DDRA_BIT SET_ADDRESS(DDRA) #endif #ifdef DDRB #define DDRB_BIT SET_ADDRESS(DDRB) #endif #ifdef DDRC #define DDRC_BIT SET_ADDRESS(DDRC) #endif #ifdef DDRD #define DDRD_BIT SET_ADDRESS(DDRD) #endif #ifdef DDRE #define DDRE_BIT SET_ADDRESS(DDRE) #endif #ifdef DDRF #define DDRF_BIT SET_ADDRESS(DDRF) #endif #ifdef DDRG #define DDRG_BIT SET_ADDRESS(DDRG) #endif /**********************************************************/ #ifdef PINA #define PINA_BIT SET_ADDRESS(PINA) #endif #ifdef PINB #define PINB_BIT SET_ADDRESS(PINB) #endif #ifdef PINC #define PINC_BIT SET_ADDRESS(PINC) #endif #ifdef PIND #define PIND_BIT SET_ADDRESS(PIND) #endif #ifdef PINE #define PINE_BIT SET_ADDRESS(PINE) #endif #ifdef PINF #define PINF_BIT SET_ADDRESS(PINF) #endif #ifdef PING #define PING_BIT SET_ADDRESS(PING) #endif /******************************************************************************/ #ifdef PORTA #define PA_0 PORTA_BIT.BIT0 #define PA_1 PORTA_BIT.BIT1 #define PA_2 PORTA_BIT.BIT2 #define PA_3 PORTA_BIT.BIT3 #define PA_4 PORTA_BIT.BIT4 #define PA_5 PORTA_BIT.BIT5 #define PA_6 PORTA_BIT.BIT6 #define PA_7 PORTA_BIT.BIT7 #endif #ifdef PORTB #define PB_0 PORTB_BIT.BIT0 #define PB_1 PORTB_BIT.BIT1 #define PB_2 PORTB_BIT.BIT2 #define PB_3 PORTB_BIT.BIT3 #define PB_4 PORTB_BIT.BIT4 #define PB_5 PORTB_BIT.BIT5 #define PB_6 PORTB_BIT.BIT6 #define PB_7 PORTB_BIT.BIT7 #endif #ifdef PORTC #define PC_0 PORTC_BIT.BIT0 #define PC_1 PORTC_BIT.BIT1 #define PC_2 PORTC_BIT.BIT2 #define PC_3 PORTC_BIT.BIT3 #define PC_4 PORTC_BIT.BIT4 #define PC_5 PORTC_BIT.BIT5 #define PC_6 PORTC_BIT.BIT6 #define PC_7 PORTC_BIT.BIT7 #endif #ifdef PORTD #define PD_0 PORTD_BIT.BIT0 #define PD_1 PORTD_BIT.BIT1 #define PD_2 PORTD_BIT.BIT2 #define PD_3 PORTD_BIT.BIT3 #define PD_4 PORTD_BIT.BIT4 #define PD_5 PORTD_BIT.BIT5 #define PD_6 PORTD_BIT.BIT6 #define PD_7 PORTD_BIT.BIT7 #endif #ifdef PORTE #define PE_0 PORTE_BIT.BIT0 #define PE_1 PORTE_BIT.BIT1 #define PE_2 PORTE_BIT.BIT2 #define PE_3 PORTE_BIT.BIT3 #define PE_4 PORTE_BIT.BIT4 #define PE_5 PORTE_BIT.BIT5 #define PE_6 PORTE_BIT.BIT6 #define PE_7 PORTE_BIT.BIT7 #endif #ifdef PORTF #define PF_0 PORTF_BIT.BIT0 #define PF_1 PORTF_BIT.BIT1 #define PF_2 PORTF_BIT.BIT2 #define PF_3 PORTF_BIT.BIT3 #define PF_4 PORTF_BIT.BIT4 #define PF_5 PORTF_BIT.BIT5 #define PF_6 PORTF_BIT.BIT6 #define PF_7 PORTF_BIT.BIT7 #endif #ifdef PORTG #define PG_0 PORTG_BIT.BIT0 #define PG_1 PORTG_BIT.BIT1 #define PG_2 PORTG_BIT.BIT2 #define PG_3 PORTG_BIT.BIT3 #define PG_4 PORTG_BIT.BIT4 #define PG_5 PORTG_BIT.BIT5 #define PG_6 PORTG_BIT.BIT6 #define PG_7 PORTG_BIT.BIT7 #endif /**********************************************************************/ #ifdef DDRA #define DDRA_0 DDRA_BIT.BIT0 #define DDRA_1 DDRA_BIT.BIT1 #define DDRA_2 DDRA_BIT.BIT2 #define DDRA_3 DDRA_BIT.BIT3 #define DDRA_4 DDRA_BIT.BIT4 #define DDRA_5 DDRA_BIT.BIT5 #define DDRA_6 DDRA_BIT.BIT6 #define DDRA_7 DDRA_BIT.BIT7 #endif #ifdef DDRB #define DDRB_0 DDRB_BIT.BIT0 #define DDRB_1 DDRB_BIT.BIT1 #define DDRB_2 DDRB_BIT.BIT2 #define DDRB_3 DDRB_BIT.BIT3 #define DDRB_4 DDRB_BIT.BIT4 #define DDRB_5 DDRB_BIT.BIT5 #define DDRB_6 DDRB_BIT.BIT6 #define DDRB_7 DDRB_BIT.BIT7 #endif #ifdef DDRC #define DDRC_0 DDRC_BIT.BIT0 #define DDRC_1 DDRC_BIT.BIT1 #define DDRC_2 DDRC_BIT.BIT2 #define DDRC_3 DDRC_BIT.BIT3 #define DDRC_4 DDRC_BIT.BIT4 #define DDRC_5 DDRC_BIT.BIT5 #define DDRC_6 DDRC_BIT.BIT6 #define DDRC_7 DDRC_BIT.BIT7 #endif #ifdef DDRD #define DDRD_0 DDRD_BIT.BIT0 #define DDRD_1 DDRD_BIT.BIT1 #define DDRD_2 DDRD_BIT.BIT2 #define DDRD_3 DDRD_BIT.BIT3 #define DDRD_4 DDRD_BIT.BIT4 #define DDRD_5 DDRD_BIT.BIT5 #define DDRD_6 DDRD_BIT.BIT6 #define DDRD_7 DDRD_BIT.BIT7 #endif #ifdef DDRE #define DDRE_0 DDRE_BIT.BIT0 #define DDRE_1 DDRE_BIT.BIT1 #define DDRE_2 DDRE_BIT.BIT2 #define DDRE_3 DDRE_BIT.BIT3 #define DDRE_4 DDRE_BIT.BIT4 #define DDRE_5 DDRE_BIT.BIT5 #define DDRE_6 DDRE_BIT.BIT6 #define DDRE_7 DDRE_BIT.BIT7 #endif #ifdef DDRF #define DDRF_0 DDRF_BIT.BIT0 #define DDRF_1 DDRF_BIT.BIT1 #define DDRF_2 DDRF_BIT.BIT2 #define DDRF_3 DDRF_BIT.BIT3 #define DDRF_4 DDRF_BIT.BIT4 #define DDRF_5 DDRF_BIT.BIT5 #define DDRF_6 DDRF_BIT.BIT6 #define DDRF_7 DDRF_BIT.BIT7 #endif #ifdef DDRG #define DDRG_0 DDRG_BIT.BIT0 #define DDRG_1 DDRG_BIT.BIT1 #define DDRG_2 DDRG_BIT.BIT2 #define DDRG_3 DDRG_BIT.BIT3 #define DDRG_4 DDRG_BIT.BIT4 #define DDRG_5 DDRG_BIT.BIT5 #define DDRG_6 DDRG_BIT.BIT6 #define DDRG_7 DDRG_BIT.BIT7 #endif /*****************************************************************************/ #ifdef PINA #define PINA_0 PINA_BIT.BIT0 #define PINA_1 PINA_BIT.BIT1 #define PINA_2 PINA_BIT.BIT2 #define PINA_3 PINA_BIT.BIT3 #define PINA_4 PINA_BIT.BIT4 #define PINA_5 PINA_BIT.BIT5 #define PINA_6 PINA_BIT.BIT6 #define PINA_7 PINA_BIT.BIT7 #endif #ifdef PINB #define PINB_0 PINB_BIT.BIT0 #define PINB_1 PINB_BIT.BIT1 #define PINB_2 PINB_BIT.BIT2 #define PINB_3 PINB_BIT.BIT3 #define PINB_4 PINB_BIT.BIT4 #define PINB_5 PINB_BIT.BIT5 #define PINB_6 PINB_BIT.BIT6 #define PINB_7 PINB_BIT.BIT7 #endif #ifdef PINC #define PINC_0 PINC_BIT.BIT0 #define PINC_1 PINC_BIT.BIT1 #define PINC_2 PINC_BIT.BIT2 #define PINC_3 PINC_BIT.BIT3 #define PINC_4 PINC_BIT.BIT4 #define PINC_5 PINC_BIT.BIT5 #define PINC_6 PINC_BIT.BIT6 #define PINC_7 PINC_BIT.BIT7 #endif #ifdef PIND #define PIND_0 PIND_BIT.BIT0 #define PIND_1 PIND_BIT.BIT1 #define PIND_2 PIND_BIT.BIT2 #define PIND_3 PIND_BIT.BIT3 #define PIND_4 PIND_BIT.BIT4 #define PIND_5 PIND_BIT.BIT5 #define PIND_6 PIND_BIT.BIT6 #define PIND_7 PIND_BIT.BIT7 #endif #ifdef PINE #define PINE_0 PINE_BIT.BIT0 #define PINE_1 PINE_BIT.BIT1 #define PINE_2 PINE_BIT.BIT2 #define PINE_3 PINE_BIT.BIT3 #define PINE_4 PINE_BIT.BIT4 #define PINE_5 PINE_BIT.BIT5 #define PINE_6 PINE_BIT.BIT6 #define PINE_7 PINE_BIT.BIT7 #endif #ifdef PINF #define PINF_0 PINF_BIT.BIT0 #define PINF_1 PINF_BIT.BIT1 #define PINF_2 PINF_BIT.BIT2 #define PINF_3 PINF_BIT.BIT3 #define PINF_4 PINF_BIT.BIT4 #define PINF_5 PINF_BIT.BIT5 #define PINF_6 PINF_BIT.BIT6 #define PINF_7 PINF_BIT.BIT7 #endif #ifdef PING #define PING_0 PING_BIT.BIT0 #define PING_1 PING_BIT.BIT1 #define PING_2 PING_BIT.BIT2 #define PING_3 PING_BIT.BIT3 #define PING_4 PING_BIT.BIT4 #define PING_5 PING_BIT.BIT5 #define PING_6 PING_BIT.BIT6 #define PING_7 PING_BIT.BIT7 #endif #endif /*******************************************************************************/
8192CU LINUX驱动/****************************************************************************** * * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA * * ******************************************************************************/ /* * Public General Config */ #define AUTOCONF_INCLUDED #define RTL871X_MODULE_NAME "92CU" #define DRV_NAME "rtl8192cu" #define CONFIG_USB_HCI 1 #define CONFIG_RTL8192C 1 #define PLATFORM_LINUX 1 //#define CONFIG_IOCTL_CFG80211 1 #ifdef CONFIG_IOCTL_CFG80211 #define CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER //#define CONFIG_DEBUG_CFG80211 1 #endif /* * Internal General Config */ //#define CONFIG_PWRCTRL //#define CONFIG_H2CLBK #define CONFIG_EMBEDDED_FWIMG 1 //#define CONFIG_FILE_FWIMG #ifdef CONFIG_WAKE_ON_WLAN #define CONFIG_WOWLAN 1 #endif //CONFIG_WAKE_ON_WLAN #define CONFIG_R871X_TEST 1 #define CONFIG_80211N_HT 1 #define CONFIG_RECV_REORDERING_CTRL 1 //#define CONFIG_TCP_CSUM_OFFLOAD_RX 1 //#define CONFIG_DRVEXT_MODULE 1 #ifndef CONFIG_MP_INCLUDED #define CONFIG_IPS 1 #ifdef CONFIG_IPS //#define CONFIG_IPS_LEVEL_2 1 //enable this to set default IPS mode to IPS_LEVEL_2 #endif #define SUPPORT_HW_RFOFF_DETECTED 1 #define CONFIG_LPS 1 #define CONFIG_BT_COEXIST 1 //befor link #define CONFIG_ANTENNA_DIVERSITY //after link #ifdef CONFIG_ANTENNA_DIVERSITY #define CONFIG_SW_ANTENNA_DIVERSITY //#define CONFIG_HW_ANTENNA_DIVERSITY #endif #define CONFIG_IOL #else //#ifndef CONFIG_MP_INCLUDED #define CONFIG_MP_IWPRIV_SUPPORT 1 #endif //#ifndef CONFIG_MP_INCLUDED #define CONFIG_AP_MODE 1 #define CONFIG_NATIVEAP_MLME 1 // Added by Albert 20110314 #define CONFIG_P2P 1 #ifdef CONFIG_P2P // Added by Albert 20110812 // The CONFIG_WFD is for supporting the Wi-Fi display //#define CONFIG_WFD 1 // Unmarked if there is low p2p scanned ratio; Kurt //#define CONFIG_P2P_AGAINST_NOISE 1 #define CONFIG_P2P_REMOVE_GROUP_INFO //#define CONFIG_DBG_P2P #endif // Added by Kurt 20110511 //#define CONFIG_TDLS 1 #ifdef CONFIG_TDLS #define CONFIG_TDLS_AUTOSETUP 1 #define CONFIG_TDLS_AUTOCHECKALIVE 1 #endif #ifdef CONFIG_AP_MODE #ifndef CONFIG_NATIVEAP_MLME #define CONFIG_HOSTAPD_MLME 1 #endif #define CONFIG_FIND_BEST_CHANNEL 1 #endif #define CONFIG_SKB_COPY 1//for amsdu #define CONFIG_LED #ifdef CONFIG_LED #define CONFIG_SW_LED #ifdef CONFIG_SW_LED //#define CONFIG_LED_HANDLED_BY_CMD_THREAD #endif #endif // CONFIG_LED #define USB_INTERFERENCE_ISSUE // this should be checked in all usb interface #define CONFIG_GLOBAL_UI_PID #define CONFIG_LAYER2_ROAMING #define CONFIG_LAYER2_ROAMING_RESUME //#define CONFIG_ADAPTOR_INFO_CACHING_FILE // now just applied on 8192cu only, should make it general... //#define CONFIG_RESUME_IN_WORKQUEUE //#define CONFIG_SET_SCAN_DENY_TIMER #define CONFIG_LONG_DELAY_ISSUE #define CONFIG_NEW_SIGNAL_STAT_PROCESS //#define CONFIG_SIGNAL_DISPLAY_DBM //display RX signal with dbm #ifdef CONFIG_IOL #define CONFIG_IOL_LLT #define CONFIG_IOL_MAC #define CONFIG_IOL_BB_PHY_REG #define CONFIG_IOL_BB_AGC_TAB #define CONFIG_IOL_RF_RF90_PATH_A #define CONFIG_IOL_RF_RF90_PATH_B #endif #define CONFIG_BR_EXT 1 // Enable NAT2.5 support for STA mode interface with a L2 Bridge #ifdef CONFIG_BR_EXT #define CONFIG_BR_EXT_BRNAME "br0" #endif // CONFIG_BR_EXT #define CONFIG_TX_MCAST2UNI 1 // Support IP multicast->unicast //#define CONFIG_CHECK_AC_LIFETIME 1 // Check packet lifetime of 4 ACs. /* * Interface Related Config */ //#define CONFIG_USB_INTERRUPT_IN_PIPE 1 #ifndef CONFIG_MINIMAL_MEMORY_USAGE #define CONFIG_USB_TX_AGGREGATION 1 #define CONFIG_USB_RX_AGGREGATION 1 #endif #define CONFIG_PREALLOC_RECV_SKB 1 //#define CONFIG_REDUCE_USB_TX_INT 1 // Trade-off: Improve performance, but may cause TX URBs blocked by USB Host/Bus driver on few platforms. //#define CONFIG_EASY_REPLACEMENT 1 /* * CONFIG_USE_USB_BUFFER_ALLOC_XX uses Linux USB Buffer alloc API and is for Linux platform only now! */ #define CONFIG_USE_USB_BUFFER_ALLOC_TX 1 // Trade-off: For TX path, improve stability on some platforms, but may cause performance degrade on other platforms. //#define CONFIG_USE_USB_BUFFER_ALLOC_RX 1 // For RX path /* * USB VENDOR REQ BUFFER ALLOCATION METHOD * if not set we'll use function local variable (stack memory) */ //#define CONFIG_USB_VENDOR_REQ_BUFFER_DYNAMIC_ALLOCATE #define CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC #define CONFIG_USB_VENDOR_REQ_MUTEX #define CONFIG_VENDOR_REQ_RETRY //#define CONFIG_USB_SUPPORT_ASYNC_VDN_REQ 1 /* * HAL Related Config */ #define RTL8192C_RX_PACKET_NO_INCLUDE_CRC 1 #define SUPPORTED_BLOCK_IO #define RTL8192CU_FW_DOWNLOAD_ENABLE 1 #define CONFIG_ONLY_ONE_OUT_EP_TO_LOW 0 #define CONFIG_OUT_EP_WIFI_MODE 0 #define ENABLE_USB_DROP_INCORRECT_OUT 0 #define RTL8192CU_ASIC_VERIFICATION 0 // For ASIC verification. #define RTL8192CU_ADHOC_WORKAROUND_SETTING 1 #define DISABLE_BB_RF 0 #define RTL8191C_FPGA_NETWORKTYPE_ADHOC 0 #ifdef CONFIG_MP_INCLUDED #define MP_DRIVER 1 #undef CONFIG_USB_TX_AGGREGATION #undef CONFIG_USB_RX_AGGREGATION #else #define MP_DRIVER 0 #endif /* * Platform Related Config */ #ifdef CONFIG_PLATFORM_MN10300 #define CONFIG_SPECIAL_SETTING_FOR_FUNAI_TV #if defined (CONFIG_SW_ANTENNA_DIVERSITY) #undef CONFIG_SW_ANTENNA_DIVERSITY #define CONFIG_HW_ANTENNA_DIVERSITY #endif #endif #ifdef CONFIG_WISTRON_PLATFORM #endif #ifdef CONFIG_PLATFORM_TI_DM365 #define CONFIG_USE_USB_BUFFER_ALLOC_RX 1 #endif /* * Debug Related Config */ //#define CONFIG_DEBUG_RTL871X #define DBG 0 #define CONFIG_DEBUG_RTL819X #define CONFIG_PROC_DEBUG 1 //#define DBG_IO //#define DBG_DELAY_OS //#define DBG_MEM_ALLOC //#define DBG_IOCTL //#define DBG_TX //#define DBG_XMIT_BUF //#define DBG_TX_DROP_FRAME //#define DBG_RX_DROP_FRAME //#define DBG_RX_SEQ //#define DBG_RX_SIGNAL_DISPLAY_PROCESSING //#define DBG_RX_SIGNAL_DISPLAY_SSID_MONITORED "jeff-ap" //#define DBG_EXPIRATION_CHK //#define DBG_SHOW_MCUFWDL_BEFORE_51_ENABLE //#define DBG_ROAMING_TEST //#define DBG_HAL_INIT_PROFILING #define DBG_MEMORY_LEAK 1 #define DBG_CONFIG_ERROR_DETECT //#define DBG_CONFIG_ERROR_RESET

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧