4. Definitions (cont')

博客介绍了C#编程中的多个概念,包括实现、命名空间、参数、程序、程序实例化等。还提及了推荐实践、源文件、不安全代码以及编译时警告等内容,对理解C#编程环境和相关操作有一定帮助。
Implementation . particular set of software (running in a particular
translation environment under
particular control options) that performs translation of programs for, and
supports execution of methods in, a
particular execution environment.
Namespace . a logical organizational system that provides a way of
presenting program elements that are
exposed to other programs.
Parameter . a variable declared as part of a method, instance constructor,
or indexer definition, which
acquires a value on entry to that method. It is also known as formal
parameter.
Program . refers to one or more source files that are presented to the
compiler. Essentially, a program is
the input to the compiler.
Program, valid . a C# program constructed according to the syntax rules and
diagnosable semantic rules.
Program instantiation . the execution of an application.
Recommended practice — specification that is strongly recommended as being
aligned with the intent of
the standard, but that may be impractical for some implementations
Source file . an ordered sequence of Unicode characters. Source files
typically have a one-to-one
correspondence with files in a file system, but this correspondence is not
required.
Unsafe code . code that is permitted to perform such lower-level operations
as declaring and operating on
pointers, performing conversions between pointers and integral types, and
taking the address of variables.
Such operations provide functionality such as permitting interfacing with
the underlying operating system,
accessing a memory-mapped device, or implementing a time-critical algorithm.
Warning, compile-time . an informational message reported during program
translation, that is intended
to identify a potentially questionable usage of a program element.
set (NN_SOURCES nn.h inproc.h ipc.h tcp.h ws.h pair.h pubsub.h reqrep.h pipeline.h survey.h bus.h core/ep.h core/ep.c core/global.h core/global.c core/pipe.c core/poll.c core/sock.h core/sock.c core/sockbase.c core/symbol.c aio/ctx.h aio/ctx.c aio/fsm.h aio/fsm.c aio/pool.h aio/pool.c aio/timer.h aio/timer.c aio/timerset.h aio/timerset.c aio/usock.h aio/usock.c aio/worker.h aio/worker.c utils/alloc.h utils/alloc.c utils/atomic.h utils/atomic.c utils/attr.h utils/chunk.h utils/chunk.c utils/chunkref.h utils/chunkref.c utils/clock.h utils/clock.c utils/closefd.h utils/closefd.c utils/cont.h utils/efd.h utils/efd.c utils/err.h utils/err.c utils/fast.h utils/fd.h utils/hash.h utils/hash.c utils/list.h utils/list.c utils/msg.h utils/msg.c utils/condvar.h utils/condvar.c utils/mutex.h utils/mutex.c utils/once.h utils/once.c utils/queue.h utils/queue.c utils/random.h utils/random.c utils/sem.h utils/sem.c utils/sleep.h utils/sleep.c utils/strcasecmp.c utils/strcasecmp.h utils/strcasestr.c utils/strcasestr.h utils/strncasecmp.c utils/strncasecmp.h utils/thread.h utils/thread.c utils/wire.h utils/wire.c devices/device.h devices/device.c protocols/utils/dist.h protocols/utils/dist.c protocols/utils/excl.h protocols/utils/excl.c protocols/utils/fq.h protocols/utils/fq.c protocols/utils/lb.h protocols/utils/lb.c protocols/utils/priolist.h protocols/utils/priolist.c protocols/bus/bus.c protocols/bus/xbus.h protocols/bus/xbus.c protocols/pipeline/push.c protocols/pipeline/pull.c protocols/pipeline/xpull.h protocols/pipeline/xpull.c protocols/pipeline/xpush.h protocols/pipeline/xpush.c protocols/pair/pair.c protocols/pair/xpair.h protocols/pair/xpair.c protocols/pubsub/pub.c protocols/pubsub/sub.c protocols/pubsub/trie.h protocols/pubsub/trie.c protocols/pubsub/xpub.h protocols/pubsub/xpub.c protocols/pubsub/xsub.h protocols/pubsub/xsub.c protocols/reqrep/req.h protocols/reqrep/req.c protocols/reqrep/rep.h protocols/reqrep/rep.c protocols/reqrep/task.h protocols/reqrep/task.c protocols/reqrep/xrep.h protocols/reqrep/xrep.c protocols/reqrep/xreq.h protocols/reqrep/xreq.c protocols/survey/respondent.c protocols/survey/surveyor.c protocols/survey/xrespondent.h protocols/survey/xrespondent.c protocols/survey/xsurveyor.h protocols/survey/xsurveyor.c transports/utils/backoff.h transports/utils/backoff.c transports/utils/dns.h transports/utils/dns.c transports/utils/dns_getaddrinfo.h transports/utils/dns_getaddrinfo.inc transports/utils/dns_getaddrinfo_a.h transports/utils/dns_getaddrinfo_a.inc transports/utils/iface.h transports/utils/iface.c transports/utils/literal.h transports/utils/literal.c transports/utils/port.h transports/utils/port.c transports/utils/streamhdr.h transports/utils/streamhdr.c transports/utils/base64.h transports/utils/base64.c transports/inproc/binproc.h transports/inproc/binproc.c transports/inproc/cinproc.h transports/inproc/cinproc.c transports/inproc/inproc.c transports/inproc/ins.h transports/inproc/ins.c transports/inproc/msgqueue.h transports/inproc/msgqueue.c transports/inproc/sinproc.h transports/inproc/sinproc.c transports/ipc/aipc.h transports/ipc/aipc.c transports/ipc/bipc.h transports/ipc/bipc.c transports/ipc/cipc.h transports/ipc/cipc.c transports/ipc/ipc.c transports/ipc/sipc.h transports/ipc/sipc.c transports/tcp/atcp.h transports/tcp/atcp.c transports/tcp/btcp.h transports/tcp/btcp.c transports/tcp/ctcp.h transports/tcp/ctcp.c transports/tcp/stcp.h transports/tcp/stcp.c transports/tcp/tcp.c transports/ws/aws.h transports/ws/aws.c transports/ws/bws.h transports/ws/bws.c transports/ws/cws.h transports/ws/cws.c transports/ws/sws.h transports/ws/sws.c transports/ws/ws.c transports/ws/ws_handshake.h transports/ws/ws_handshake.c transports/ws/sha1.h transports/ws/sha1.c ) if (WIN32) list (APPEND NN_SOURCES aio/usock_win.h aio/usock_win.inc aio/worker_win.h aio/worker_win.inc utils/thread_win.h utils/thread_win.inc utils/win.h ) elseif (UNIX) list (APPEND NN_SOURCES aio/usock_posix.h aio/usock_posix.inc aio/worker_posix.h aio/worker_posix.inc utils/thread_posix.h utils/thread_posix.inc ) else () message (FATAL_ERROR "Assertion failed; this path is unreachable.") endif () if (NN_HAVE_EPOLL) add_definitions (-DNN_USE_EPOLL) list (APPEND NN_SOURCES aio/poller.h aio/poller.c aio/poller_epoll.h aio/poller_epoll.inc ) elseif (NN_HAVE_KQUEUE) add_definitions (-DNN_USE_KQUEUE) list (APPEND NN_SOURCES aio/poller.h aio/poller.c aio/poller_kqueue.h aio/poller_kqueue.inc ) elseif (NN_HAVE_POLL) add_definitions (-DNN_USE_POLL) list (APPEND NN_SOURCES aio/poller.h aio/poller.c aio/poller_poll.h aio/poller_poll.inc ) elseif (NN_HAVE_WINSOCK) # No operation else () message (SEND_ERROR "ERROR: could not determine socket polling method.") message (SEND_ERROR "${ISSUE_REPORT_MSG}" ) endif () if (NN_HAVE_EVENTFD) add_definitions (-DNN_USE_EVENTFD) list (APPEND NN_SOURCES utils/efd_eventfd.h utils/efd_eventfd.inc ) elseif (NN_HAVE_PIPE) add_definitions (-DNN_USE_PIPE) list (APPEND NN_SOURCES utils/efd_pipe.h utils/efd_pipe.inc ) elseif (NN_HAVE_SOCKETPAIR) add_definitions (-DNN_USE_SOCKETPAIR) list (APPEND NN_SOURCES utils/efd_socketpair.h utils/efd_socketpair.inc ) elseif (NN_HAVE_WINSOCK) add_definitions (-DNN_USE_WINSOCK) list (APPEND NN_SOURCES utils/efd_win.h utils/efd_win.inc ) else () message (SEND_ERROR "ERROR: could not determine socket signaling method.") message (SEND_ERROR "${ISSUE_REPORT_MSG}" ) endif () # Provide same folder structure in IDE as on disk foreach (f ${NN_SOURCES}) # Get the path of the file relative to source directory if (IS_ABSOLUTE "${f}") file (RELATIVE_PATH f ${CMAKE_CURRENT_SOURCE_DIR} ${f}) endif () set (SRC_GROUP "${f}") set (f "${CMAKE_CURRENT_SOURCE_DIR}/${f}") # Remove the filename part string (REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRC_GROUP ${SRC_GROUP}) # CMake source_group expects \\, not / string (REPLACE / \\ SRC_GROUP ${SRC_GROUP}) source_group ("${SRC_GROUP}" FILES ${f}) endforeach () if (NN_STATIC_LIB) add_library (${PROJECT_NAME} STATIC ${NN_SOURCES}) else () add_library (${PROJECT_NAME} SHARED ${NN_SOURCES}) add_definitions (-DNN_SHARED_LIB) set_target_properties (${PROJECT_NAME} PROPERTIES SOVERSION "${NN_ABI_VERSION}") endif () # Set library outputs same as top-level project binary outputs set_target_properties (${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set_target_properties (${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set_target_properties (${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) target_link_libraries (${PROJECT_NAME} ${NN_REQUIRED_LIBRARIES}) if(THREADS_HAVE_PTHREAD_ARG) add_definitions (-pthread) endif() if(CMAKE_THREAD_LIBS_INIT) target_link_libraries (${PROJECT_NAME} "${CMAKE_THREAD_LIBS_INIT}") endif() # pkg-config file if(NN_REQUIRED_LIBRARIES) foreach (lib ${NN_REQUIRED_LIBRARIES}) set (NN_REQUIRED_LFLAGS "${NN_REQUIRED_LFLAGS} -l${lib}") endforeach() endif() configure_file (pkgconfig.in ${PROJECT_NAME}.pc @ONLY) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install (TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
09-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值